From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD2A6C54FC6 for ; Sun, 1 Sep 2024 09:24:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F98E8D0041; Sun, 1 Sep 2024 05:24:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A8F68D0022; Sun, 1 Sep 2024 05:24:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64A1C8D0041; Sun, 1 Sep 2024 05:24:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 43D188D0022 for ; Sun, 1 Sep 2024 05:24:31 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A98D340D34 for ; Sun, 1 Sep 2024 09:24:30 +0000 (UTC) X-FDA: 82515633900.08.61CFDBF Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf17.hostedemail.com (Postfix) with ESMTP id 7E66E40007 for ; Sun, 1 Sep 2024 09:24:28 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=igd3ty5T; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=olsajiri@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725182646; a=rsa-sha256; cv=none; b=yJaI//eEayTRAg8RViP9ZVgfkP6EQMwYrq+sMP8+EFhs9UEfoGNvoTKCzv2j5f29OUEShi ZKvQyRagMEH+M6NQxwf9OMJ9gK1U5v74kvG7cKrJNxDvIOuENlSqlRMk8oRG5f68sajotU 4x7eG/drBlHUTf06/xTpkEtMdRHJa/A= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=igd3ty5T; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=olsajiri@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725182646; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=NpMbOND7bnnUWOw6bryId5SAxEqCz+beACS9+dckXik=; b=yOtWX5A45RN0SV8mJk2TmUT3zBinxcRw/xbmiKSOI/nNKYGt2bhn785Fp300npMvVaS2aX WygsQBV94v4GKU5QbuvZY7tm+82jt+7yZOFCdIuu0/GG2Ir1X2AtCSozIlnuZfAIqMnyiS 6Kvc3+lh0QGMKdVMjEJ4stSkhguqeMI= Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5343617fdddso5698158e87.0 for ; Sun, 01 Sep 2024 02:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725182667; x=1725787467; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=NpMbOND7bnnUWOw6bryId5SAxEqCz+beACS9+dckXik=; b=igd3ty5TJqZcN12emYXzgOZG3rdjUOVHlvbf/57HGqrTM76DisUEsxRbAoyv0CIrM1 +CuaTQe2uZ9JrP/TtPPyBjBsKxTPxJY5drMsh16fvNQwcLAqVpqGK3XQhRFT9mY5rsri y3gYYufvE6CQK1ArAc7EJqQLwts0ruC4eXLe/2e4SDR5jTEgLKMUSys8tKHdaw2TBt1+ Xlb7r6CP06iSqT8+f60LZHdtuPy3uYnkZh8l2oNbQpMXLQy7MBARnbcE2pVaQA32f0eu JyWFEv9HfIbr9bbBxjZw64mnkBj7kAo1gvb5chrR7kFJGP6BjcYe022lRUvTRnQyExua bIDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725182667; x=1725787467; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NpMbOND7bnnUWOw6bryId5SAxEqCz+beACS9+dckXik=; b=kgQYvMLJ5TvEkCThLpnpJ/3IvHXL+vko/qzvJC48zK6ZV/Zf81Ex2klXHDkMQZ0Oyu Ua1KjZFbBR0IaGZnUfl42XipKQH9IIqAANvHJnYfP0ZuwPcMxYSCfEkMUY/soIljmXHv 5Y5O0rNMAgPAcx0bSbdOyx9amfbBjDR5FUt4Y0F3ctD7QCEL6xLUTR7Sq9wcrHNN4t11 dPWgPrjXEx793BfcHbmp97iMFKqiWPgwZ3d1AXjXkxgJMlEBRZeHm04b3x8uJn/F/5Hb plCXfONPKTjglJxN+s6ygOGxp2z2Sf4LdQiyxAPe1q9cmvOkk2UPxQRAJnVrQ3nDlxoL rcnQ== X-Forwarded-Encrypted: i=1; AJvYcCXI/UQ8ipxUrqpieQQpkF259/aHAAKEGzFY3vI3+dlrhX73c026Gq7g/kCYQcN05HtSQK3ekcKT7Q==@kvack.org X-Gm-Message-State: AOJu0YzjJxSGIvMEIOIY9VnA+J/hnv4KqeolkUrowPW3o7JpVO1WCc2n AbGjrxBkY8qpac4vuQFK/PahmmhKHGlttxTR0007kDG/GocOev0s X-Google-Smtp-Source: AGHT+IENnlyuqzOH83+HQed+QI9kRYRv5ZXCprNMwhivq53TgR7G89sM26T8F3kYwSse0JKmtuHpBg== X-Received: by 2002:a05:6512:3f06:b0:531:8f2f:8ae7 with SMTP id 2adb3069b0e04-53546b49f69mr6213897e87.25.1725182666067; Sun, 01 Sep 2024 02:24:26 -0700 (PDT) Received: from krava (wifigw.airport-brno.cz. [88.103.205.134]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a8989196876sm415398166b.110.2024.09.01.02.24.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Sep 2024 02:24:25 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Sun, 1 Sep 2024 11:24:22 +0200 To: Oleg Nesterov Cc: Jiri Olsa , Andrii Nakryiko , Andrii Nakryiko , linux-trace-kernel@vger.kernel.org, peterz@infradead.org, rostedt@goodmis.org, mhiramat@kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, paulmck@kernel.org, willy@infradead.org, surenb@google.com, akpm@linux-foundation.org, linux-mm@kvack.org Subject: Re: [PATCH v4 4/8] uprobes: travers uprobe's consumer list locklessly under SRCU protection Message-ID: References: <20240829183741.3331213-1-andrii@kernel.org> <20240829183741.3331213-5-andrii@kernel.org> <20240831172543.GB9683@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240831172543.GB9683@redhat.com> X-Rspam-User: X-Rspamd-Queue-Id: 7E66E40007 X-Rspamd-Server: rspam01 X-Stat-Signature: yf8kosruyfmmi5cfxdjucyh8usrbkoz9 X-HE-Tag: 1725182668-968341 X-HE-Meta: U2FsdGVkX18Y+o2Wa+9ONRh6XePJHd5lXdIFWcZkFOhsuHoXxQRs+Z7+tPsbMhbya7RUqYob8IC2VbZ8Ann41HiFIQypyvWWqiWeiiGhaq7rxjQAhPc/szIT7xkvOJoEonN0BiegPs8CwZb3FCI7uML3R4diAi51izR3Z+GxWCahPbN6Mt0xPmDQVwQiIj2GLMnosPwlkGN1vumjdw1T/NzUDHfAJ4n1mwZGX3GAdX8e02lZFiv1/HJSPbrln4FWNt2WtMmkcADcchjYIJ2mGFdoKOPGy9wNWxht7v7DCeyiY79o9amNdllasjXPeJUFnq1XKDAvwNJ0q+NgkQDSjkUG/gQlmncLA5zI7yqp2TqDHm2Snt3O9L54wYdmAKT3vcodH17DFi+vHvizfWXfWNbfBpjJhyluPrAB5GoPNtiJzGAGvkVNIOct3pJLNilkDxcY818YulRpP1dzzjvjL7sgtK9oX6NDXoRh8wiT+3QYXYDOhkHGv/4K8OWWSUaotOcxjq0Wo9jeRgffA/gGx7CJP0Iv8XQgQULVdholta+TWhWqrWDdhNJD1ynsbOEDrr1lTu1TARdTbvQmJWga0jENhj8wXGezy9vUHo/3HXmxZa4zuw3xhj6ROkzOwiKlOGQnGNhSsReCbfW3OGdgFMuSp9HqJXoIVFPEmj44tl3yqFyswhudMRsSbuXtD1uUJYBoQ1JxhtnKhdeo9T9c739VHYLn1C8LngSRQHNr7wZ8Y9Fk1wdZ3jwryVz2suxPN1TetIrRIk7DFHPmDrnOo+Z7WCkBiPizLqaoONTnV1x8VNRHpj83YfojDE909EYwjc5zntuyWc+hNJZwt+dADCL7po3PLIj7PamdgHtvb/KDp1QArXgxlENRMqRv1eY+0aIhwQsneiOkZD3cKnZVuz0OzsI8laSAnlRpxGblJsqiM17VsME3uebfjbueBVKYlwMEWpOzAOys4MA0F4L gY++z4+X 29QcwbA2W72jlSqp04vEoVQHPTOINWh0xJY6bwQn7PPt3IvODSQcJ84pTlDTAvzXfvtyeMw7QpDzRssYjS+jgXUFOmjvtk9cFJ9A9D9Uyi03oks945W+3Vdb5EJEmquEUh7BsCWje42jJaow44/VKJVVwQN/BkFiG6u9q0Zpz9YP79dB4Uygjg34u9v+CDtN4G/Tpsm3cxkYEAnowOXFjATCgvNL9FzZw6M0fnlNeGzVEEbOwrNNx7ijXtrQrQYYtdGQv20e8hS92rAA4je8dP8a18AhSSWLSy7NQzG6O84eO+ty5A8YlSwg2TeGQ83h4aC4apmhr6EGiJEo+nS1TdRkp+4FVyScfQgaTWLQ1tJMX/hrDyZDStwZ2BM7yIi6vHkyiu9ivPxkx54W2SDJdA7UfGsrTo6v3C6AY2J0PmJ5hHAPubgGIZk9PiG1zIlYGXnJzx0cGN6JRfyMjgyC7r9yENQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Sat, Aug 31, 2024 at 07:25:44PM +0200, Oleg Nesterov wrote: > On 08/30, Jiri Olsa wrote: > > > > with this change the probe will not get removed in the attached test, > > it'll get 2 hits, without this change just 1 hit > > Thanks again for pointing out the subtle change in behaviour, but could > you add more details for me? ;) > > I was going to read the test below today, but no. As I said many times > I know nothing about bpf, I simply can't understand what this test-case > actually do in kernel-space. > > According to git grep, the only in kernel user of UPROBE_HANDLER_REMOVE > is uprobe_perf_func(), but if it returns UPROBE_HANDLER_REMOVE then > consumer->filter == uprobe_perf_filter() should return false? > > So could you explay how/why exactly this changes affects your test-case? > > > But perhaps it uses bpf_uprobe_multi_link_attach() and ->handler is > uprobe_multi_link_handler() ? But uprobe_prog_run() returns zero if > current->mm != link->task->mm. > > OTOH, otherwise it returns the error code from bpf_prog_run() and this looks > confusing to me. I have no idea what prog->bpf_func(ctx, insnsi) can return > in this case, but note the WARN(rc & ~UPROBE_HANDLER_MASK) in handler_chain... > > Hmm... looking at your test-case again, > > > +SEC("uprobe.multi//proc/self/exe:uprobe_multi_func_1") > > +int uprobe(struct pt_regs *ctx) > > +{ > > + test++; > > + return 1; > > +} > > So may be this (compiled to ebpf) is what prog->bpf_func() actually executes? yep, that's correct, it goes like: uprobe_multi_link_handler uprobe_prog_run { err = bpf_prog_run - runs above bpf program and returns its return value (1 - UPROBE_HANDLER_REMOVE) return err; } > If yes, everything is clear. And this "proves" that the patch makes the current > API less flexible, as I mentioned in my reply to Andrii. > > If I got it right, I'd suggest to add a comment into this code to explain > that we return UPROBE_HANDLER_REMOVE after the 1st hit, for git-grep. ok, I'll add comment with that thanks, jirka