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 7B0A6D3B9BD for ; Wed, 27 Nov 2024 04:49:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAE5F6B008C; Tue, 26 Nov 2024 23:49:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D5E2C6B0092; Tue, 26 Nov 2024 23:49:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C25B96B0095; Tue, 26 Nov 2024 23:49:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9F5EA6B008C for ; Tue, 26 Nov 2024 23:49:19 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3E88B1C817F for ; Wed, 27 Nov 2024 04:49:19 +0000 (UTC) X-FDA: 82830645954.28.495429A Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by imf10.hostedemail.com (Postfix) with ESMTP id 16399C0003 for ; Wed, 27 Nov 2024 04:49:14 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AmFh9B0v; spf=pass (imf10.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732682953; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7YI6a5V6MFlh1RS08PL7P83mOTzI2RZFmbjyaRVBpOA=; b=mTY5z3aSE89aana2m9FruV5ChdNDGl6Fp0b6gE8vdasbupb6xMfweETGT3Y3ceq5bfVUQd lRp4utSNtBBoSO1VqM+MwEDZcBcT/iVzH0xbmGtjNeBrf8kwFX6HAuLVoviEXVTzQdGSqW ME6/buBKT18pE/7rX4N9RBjUB+6h4C4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732682953; a=rsa-sha256; cv=none; b=l3HVuVnKjx6Wyd/qPoLnjj4qaSevvntn/IkF7mbOrPA6aR+be+X52jjhzxcfjvIB5LzQlP ypZhXOQjHx0gJqOdEHQxZSGP0yb78swAirdmWmvdjDHShH/cCiQHafLQdmbrDLNTN5M9Tx +lUcWqoBkhv5p9nsQao3MkBMDtUDQJY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AmFh9B0v; spf=pass (imf10.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-2ea8d322297so4903971a91.1 for ; Tue, 26 Nov 2024 20:49:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732682956; x=1733287756; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=7YI6a5V6MFlh1RS08PL7P83mOTzI2RZFmbjyaRVBpOA=; b=AmFh9B0vWcQ3ELsihBVoDvvOfMuvXKAQFRV8gbWZ4Fwf5Pm5xBNyWqjn1uSWOzZhe8 so0Yl/Xd9xbrX3oS16uwd9YNgiO12MXR+WJEnlvDSmnUHhPHCgGVKKrA7q5W4tUoGE89 OaVMATlVmiUx8q+ZeE3y/cENwyVJKIumLoZ1JfVB0D2oaolTNUQ9F5AsufACFT93S/54 P+/3+Yw1j3kKIllzdq/LwUxr8gv/d9OEBzNNTp0aqOGK/lCzWN9dfPD59TodAlr9MftQ T3YTcJv4nDBlBkkFS3RSjRp/AzliUGPgW7e6jOZXKp/DSajhX2XCvC8EVL/aHilYId/3 4Jaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732682956; x=1733287756; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7YI6a5V6MFlh1RS08PL7P83mOTzI2RZFmbjyaRVBpOA=; b=CIUEKEAHsmYHKneWMb9jBz0iQh3jrKoiP1UCtd/0864W3YLRAmjWPGwNznPWjObBnk ICHxCrE3jbC0l9jn8M6uJ0P0jZ63dcb9X9PZtM5h11tgM2geolHsN6sJ1NX2gUrcr4qI IOAnsAMFN2fE/Ruq/2rTDbPuINu5iGFSbMs4h7QkNkCR1l3aNSumBxh1FUGg5aagsH2i eKF6Mm/h886xNIgVc2/MF64og2s8LlYVrjj+3LjBblw13h+C93CcdRezImy6JGW+RODt +TrmQxG05Yue1Lan+DFXSxEutZWMWNMURBrJEEBqW1/6e2/IH5z6+0A1oGdqeVwPGDqG RPXA== X-Forwarded-Encrypted: i=1; AJvYcCUfBqe75IVzI5LGAfN85SksGlDmLwDojQ2dfoJWisXlZ3zs2b+TbCkNtjSa7glGTAjMCBffsAlEtA==@kvack.org X-Gm-Message-State: AOJu0YxLrf2YNol+8YmBDbp6dURtwsQ/1AaC1eSXs1TAQi4dj2CIQAzX DMTtbBYB4/2aTu/Koo88FudQeWMCFJ+JuDjVIoOEDxYUkx/8RSb2vDThAw6vM9WIRgOEPEt9h3X Bqc9V+RusbIJVljvEJfPA4DIwcb4= X-Gm-Gg: ASbGnctBGtiNEYutWfektBdJ/t4TmD7J53ub12aYJZTrTZybShpYsCFP8s22YBmWpMI bAlDc6ZoYDdDDlfULogDKMfu9W8XPutxU3cnuuTYXlFRFRxA= X-Google-Smtp-Source: AGHT+IH51XKWB7OGMnkJU4faJchvCGW6xx3N56IfNXPdi0vRNuxb5FtmUhj2YkJexIgFInqeXpQIb/Qz9P4n3QSpmX4= X-Received: by 2002:a17:90b:1850:b0:2ea:3ab5:cb9d with SMTP id 98e67ed59e1d1-2ee08e9928amr2518763a91.8.1732682956057; Tue, 26 Nov 2024 20:49:16 -0800 (PST) MIME-Version: 1.0 References: <20241122035922.3321100-1-andrii@kernel.org> <20241122035922.3321100-2-andrii@kernel.org> In-Reply-To: From: Andrii Nakryiko Date: Tue, 26 Nov 2024 20:49:04 -0800 Message-ID: Subject: Re: [PATCH v5 tip/perf/core 1/2] uprobes: simplify find_active_uprobe_rcu() VMA checks To: Jann Horn Cc: Andrii Nakryiko , linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, peterz@infradead.org, mingo@kernel.org, torvalds@linux-foundation.org, oleg@redhat.com, rostedt@goodmis.org, mhiramat@kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, jolsa@kernel.org, paulmck@kernel.org, willy@infradead.org, surenb@google.com, mjguzik@gmail.com, brauner@kernel.org, mhocko@kernel.org, vbabka@suse.cz, shakeel.butt@linux.dev, hannes@cmpxchg.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, david@redhat.com, arnd@arndb.de, viro@zeniv.linux.org.uk, hca@linux.ibm.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 16399C0003 X-Stat-Signature: c3azbgfrn3hyabja63jd631ihzouqjdd X-Rspam-User: X-HE-Tag: 1732682954-845276 X-HE-Meta: U2FsdGVkX1/JABXkbws3WFhRSZGR2aq5jbxGmW5bNemNAdufpBs92njwlFq44V3P+aoG7qk+cuNg5TaJ0X5jfpqTE01C0kn/cgS9psp1bbY8WqHVRRhq5kNf+ElCF2Hjhbdvm6o57gVxRhKsAhKxrCb3+9tfVGKzKR+74yVYRcbzcqV9O0c7iyfMxHLOJBMS6D+Vf2g/eLYELJWE/N5YUv/uW4jKZgOc/TRnGX+O+DjA2Bbz/CQKMxlszjtADY2lqVVWhvwPML0qGx1I8A/2gc/1tbpOefX7i/c4DhVxWGwV+iA9UaDjHWXGoFX0F2iwD8LUTl1uPPVuE2GkvjQ077IvFNfnHEyldY/tm7gPIM4O1MSRwHYUrOUu3Z7FdeKuDNRG9cST03Ied7+KKo4GXtitiy9UpJpz7ysd7RB1Q6XQ2beZ7DXlLslbebRC0udR5Xi2Oi5aj0KIe9YUFlLK095atI5uLWYt/U+5kuOuJ+ghy8+p9zfduS1S+ta1e8n3hCeV4vNtGZaKPlqUfgQqKbDGs23jNM6zdc7/vemFY3i+YTn3No2Kbeku/r9bdAFAh31KvaM2TJd/Hd8k4lbbdyg3dYpKtZX2gSpuzNrGkSVr0G/BeMo5Y0ueiI1YlWicWMGSV8j3tIFcEB/gpWuimaZl2axI/DYvEHNTe3JCLjL0B3nNylzHvLEydLvNUTeYUu+XD9NwcnvD54RkX4RhOhc7ZxAdJlImblDlcG939X0VfdVIDK+enLHegSC9Pf0zaY0ypNE7VOw6vPwkcAXpXASuMUS37OOBAmgQR/cPDg5tDoaP28K9Bm/whPkVjtbudHSRSu2uIokaaV1iCSbCTJFa2ODb9D7c7YFgJEXYjC4ySQImaHyZlNOPK5hFugjIkicTMRiIiUcvznt4AfGwBsUoi5EspMTxowI5MYoQQbGaMSdZZDHnhwQF/ywyFquvmtDcwu9rP11TZ3Cfog/ 1AV2sBuk +clEgzEHmEl5V5h5sx78N3zzKa9vU9f0o/PVuPUVeplSgA4OaouzCWjtYAjGcIf0HbDtVym0Nh1qcvM8PAKo9GJ8V6OePKwWFIxnOq4GCK61TGK6F/NVPihw0Vk/Dr3dtHm6NLt8neJcIeJ/T574BTxpOz+jveAjEGf+NMEqpqACevSFyUpp5VwulHK5dXmkuEyF2XRESpYgc/3Py4XMg68Tq7sjjsqWGks4ai4NTKUrAyd6OQQOyhQA/mci8r5+bxXeBl4zxNU9DwYFgxnZTqlGoR5OGSuKMKJOfnipECVFUD1fPKROSs5KKJCEznl4ffYsDBjzpoBEFWSqkbv4o4+5ryVd8z/p9EGbmXVJolCX85F4V9AbfcwhSph8e6npAWUNbKYmEfqgeDYhOK4uzsgGsb/sc1ORGvt8bHbcJOMUTylQnq2a4Mki9u21A04Ds0KKkjpd87LbHK3hGy09JaUZbzQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, 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 Tue, Nov 26, 2024 at 2:20=E2=80=AFPM Jann Horn wrote: > > On Fri, Nov 22, 2024 at 4:59=E2=80=AFAM Andrii Nakryiko wrote: > > At the point where find_active_uprobe_rcu() is used we know that VMA in > > question has triggered software breakpoint, so we don't need to validat= e > > vma->vm_flags. Keep only vma->vm_file NULL check. > > How do we know that the VMA we find triggered a software breakpoint? > Between the time a software breakpoint was hit and the time we took > the mmap_read_lock(), the VMA could have been replaced with an > entirely different one, right? We need that VMA only to get inode + file offset, and whether it is the original VMA with uprobe installed, or someone raced and replaced it with some other VMA shouldn't matter. We either find uprobe at that offset within that inode, or not. So this seems fine. > > I don't know this code well, and your change looks like it's probably > fine (since the file is just used to look up its inode in some tree, > and therefore for incompatible files, the lookup is guaranteed to fail > and nothing will happen). But I think the commit message looks dodgy. > > > Reviewed-by: Masami Hiramatsu (Google) > > Acked-by: Oleg Nesterov > > Suggested-by: Oleg Nesterov > > Signed-off-by: Andrii Nakryiko > > --- > > kernel/events/uprobes.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c > > index a76ddc5fc982..c4da8f741f3a 100644 > > --- a/kernel/events/uprobes.c > > +++ b/kernel/events/uprobes.c > > @@ -2305,7 +2305,7 @@ static struct uprobe *find_active_uprobe_rcu(unsi= gned long bp_vaddr, int *is_swb > > mmap_read_lock(mm); > > vma =3D vma_lookup(mm, bp_vaddr); > > if (vma) { > > - if (valid_vma(vma, false)) { > > + if (vma->vm_file) { > > struct inode *inode =3D file_inode(vma->vm_file= ); > > loff_t offset =3D vaddr_to_offset(vma, bp_vaddr= ); > > > > -- > > 2.43.5 > >