From patchwork Tue Mar 18 22:14:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 14021645 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 2AE7FC35FF3 for ; Tue, 18 Mar 2025 22:15:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4C02280003; Tue, 18 Mar 2025 18:15:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A293E280001; Tue, 18 Mar 2025 18:15:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89E6F280003; Tue, 18 Mar 2025 18:15:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 671D5280001 for ; Tue, 18 Mar 2025 18:15:06 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E9D1E160C11 for ; Tue, 18 Mar 2025 22:15:06 +0000 (UTC) X-FDA: 83236078212.27.F4A71CE Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf02.hostedemail.com (Postfix) with ESMTP id CA5448000E for ; Tue, 18 Mar 2025 22:15:04 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=HZb8S0xF; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742336104; a=rsa-sha256; cv=none; b=cjzU/9AGDApfdmx1UCliTsqYWD7W7nkb4sET6NlQkl0Y+YP9da497ck0Gs/gViRK8j9cBp v+QTEZEwrn58dW9jIe42tVG9l6Bz6b4pwHoWkyGWhUQC+0oz2twm/9sFjPIP8rvLQQIxxS B/LZKgOOHN25les4bkEjPZQyYuSHb/0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=HZb8S0xF; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742336104; 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=Rus6kw9XsBL2c9jHGjOEjWiY0U6NqB+KHNJXO9LzuQY=; b=GNo+bkGo7KfAUrY1o15wgxNWAWvDWyYlcYtGWDLpm4073bJc24z4f3HF8oH8cdzJJP0zY3 XZlREEe3WE7HfDhz9O1h1cCZ+2ZFMVlQNDCerVGsArDgX29g9oxJ3WwIPVxeniSAsZgRtb JhJl1Kei7ayljxLfYM8aQR+lghKR8zE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742336104; h=from:from: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; bh=Rus6kw9XsBL2c9jHGjOEjWiY0U6NqB+KHNJXO9LzuQY=; b=HZb8S0xFrLEAjsfe8oezHXKdyrdCy9dYddjEnMDPGE6HKYYhtUJ0PrAtk4WLMdUZsoU32g nNzQWv+ki5evKxXgNUU/2A+GNqx2UoZJEHiiJ8Ej/X+UcaCu4d4qLeKHOdmFysGHMGVHF/ FI9gnlhHWPLYeRPTPKThznrapkXzLiI= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-468-ys2-5xgIMFyp84wGmEKoaQ-1; Tue, 18 Mar 2025 18:15:02 -0400 X-MC-Unique: ys2-5xgIMFyp84wGmEKoaQ-1 X-Mimecast-MFC-AGG-ID: ys2-5xgIMFyp84wGmEKoaQ_1742336102 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-391345e3aa3so3650441f8f.0 for ; Tue, 18 Mar 2025 15:15:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742336101; x=1742940901; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Rus6kw9XsBL2c9jHGjOEjWiY0U6NqB+KHNJXO9LzuQY=; b=bmjRcA0pP2r2MxMd5vz8mxFUV1e7LA78MrppzppPmFCyaDBjh4UklZGsiIZfQp9ajc 9Q11aln6Ohorp7lToDUHjIGbXyQrlArH8zs3EPvnjOE12Sy4rAU7MsWgqr5FzZONlmpQ OWQoMIROKBO7+ZQyUbvYrEU6TLqgat622OM7K3ZXrwmTL2vnoq/4Y3YgE5efP5FhVGsl 1+PkUtHJWZB+zcEg1gI27RGTTJHG5xetDSgXj4VmP1rd+grW1eMbSQUQb6WCJMaOs5E+ VmT0Ltb3kPiia1ES9HHDY0uwfRcSWQzx/HWCFbnFXQoa79Bkyo9DOYc826nwicFlLf8K AmJw== X-Gm-Message-State: AOJu0YzduViLreyI8ZbTUr35wAGRgnEgbcwRm2ar+1+fzcpVD7kVXsto Pk5uIewsIswI9+ojciD3WQHXiAOeZ3SGFIz7Fkk5BANrSq8IT/oWzJ5Odru6C9N9E8wEu7vvIkW N4LB6pDGJQpVLRvso5+KxVOHkm24nwiJ05ZNyEC16R9eTXIwA X-Gm-Gg: ASbGncuZ6vlTYx6UveQD/e0HwJZR9PvWU6QjCbSiQcJmeywxMZdVaVO7F3V/WwCBEhq O1jQ3mUwdvjUaIQIKxSEoNJ9VRIz60pUSl4vc+VgJmYOi+tFeSxtlcOA3zZI7dziCsoDPJkN6bD MjyRbEz2PGemvbXA5NKwJDFqa5WELV8DG1CzJiWh9i1a8O4HRmNqtiwSQ6d4jQrppKQZwR/Pu6s Hp6evHZit+6+3wTJMDOuc/nLB5xo8D5A6IpfgjXG4+m8JUQD/wUdwGrZxiPAlH4pJ0ufM3hCw0Q 6g3p0F+ljHVyzCuQ8s7Pm32OFA1BVvOzDkHepZaiuj8RCcJ1UByYasoWwvZ+sk8NwOyr14Ky/8r / X-Received: by 2002:a05:6000:2a6:b0:390:e8e4:7e3e with SMTP id ffacd0b85a97d-399739b484emr390657f8f.6.1742336101721; Tue, 18 Mar 2025 15:15:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHEntLQOUh/Nv/fGa/REaqlKcGpxmQ8E/qfsoQdKPfCKbsE1Lco5OztnXYuajlRpXhgshxCpw== X-Received: by 2002:a05:6000:2a6:b0:390:e8e4:7e3e with SMTP id ffacd0b85a97d-399739b484emr390645f8f.6.1742336101239; Tue, 18 Mar 2025 15:15:01 -0700 (PDT) Received: from localhost (p200300cbc72d250094b54b7dad4afd0b.dip0.t-ipconnect.de. [2003:cb:c72d:2500:94b5:4b7d:ad4a:fd0b]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-395cb318a8bsm19682001f8f.66.2025.03.18.15.15.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 Mar 2025 15:15:00 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, David Hildenbrand , Andrew Morton , Andrii Nakryiko , Matthew Wilcox , Russell King , Masami Hiramatsu , Oleg Nesterov , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , "Liang, Kan" , Tong Tiangen Subject: [PATCH v2 1/3] kernel/events/uprobes: pass VMA instead of MM to remove_breakpoint() Date: Tue, 18 Mar 2025 23:14:55 +0100 Message-ID: <20250318221457.3055598-2-david@redhat.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250318221457.3055598-1-david@redhat.com> References: <20250318221457.3055598-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 3ryZpkkETvNUr9VFJHpKRv5NXXWYM4luJaOdddKZTAU_1742336102 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Queue-Id: CA5448000E X-Stat-Signature: do91zahyp5tgwmuqrx56hikgfyxn8yeb X-Rspamd-Server: rspam06 X-HE-Tag: 1742336104-332801 X-HE-Meta: U2FsdGVkX198+miRcqzOgqDfIk5YI7l+43jdanc7YJTdugKvWwvL6az7u38pA3Y1R1Wf77VIECyH7R7wHZrUJTdGOEfuu+QyWTjgmXArOe3bGZaQrzkXtHgzi3x7PXtOvpFDhCJsnUls6NTjsdqkq32XcSzJtxqHFgbdgfy2nIv5d6b6kSUWuKLz//PYqfWIff+Vm3QFZd1R46dfdurEc69MRw8N/H9im690TGvkHxrbOCMdr5RWLFoatA5JcigRoeVPThGEE//s+gka6JsCklk5pE3pFBtzEhMYTJWgfGa6OQZmdsl0PKTSHdYSd6GsyFs2WuQUq67qfzhVBTwiVg40Cs9nUbhqZ7LQodXZQWqAOx4UoVI4g6svyRQL6aayoBICJ0HNe7tY6PzUpfhsIBcj2Qq51ZFgeM31IvwjJez0JlkH0k1OeksH0tJSZ24+HL67taW4sn7E3pjK61wAoNnzpbW7ae57O3VZ5cAP7s0Or2v5XZ99UuaumT78RI25Gui08ozKnNk4OpBkIXmQsh2nc7O7RUGp85zYiWlgHLCl4SoXA7ALZoNmYgQo1NN6wXEJmmvqyYVPR8kUosk34DF0NRjZ3YTp+9tX6VkswMWKLIayKg8DqJVtmBjY8JanpJy0uznusfyMG0RvNjTkr/ymf/hpdnjObszSPnGfKe3WR8MpR/5c/Ms5yIW3CR0s8vgSwXKe/MdQfjxcRvFMIgJA8xuLBuQYzNRsQCD3l79q+GA/SIiHk0vtUBeUWSJ/px7Pa4mYbkhxGhs35RVpRzKGuM+AIkf5UvsfZLXbuPyqQ6vbLIUl0WB76AK8LpDv1hLOQy4cVWwEwPBjFPqHdnpxExTMH33UPuWe8sXi+PfwWqjBauHNIzgGTbW26ClIOMcyaGgW9TZCRDa9oBymCGspkmAQG8Ysr0DYADOLr8grZUJUfnHfaPfdfXqngfAXgxuyHNQhyj87P2Dc1Fs 8kbXx/yb G6VOveCUgPwAJ+WCkCmDERwmezcyjMASPf/3wL98vUezs6iDeKL2umKO0urbKPxm8HXyGdckRtTjCLYYPkf+3euNRjwpP/ppp+YEkJ0zRYa7t39ETi6o7A4BeNjLCFNMYojK3ziEdX0JFmk7SRF5ATHeVLM4FkoV5jOi48vGKwHL4ugy/Kk3Oi5Iq4MQ1n3akauWLUmrQ/4JQ7S3wLGuLzkcMptQbE3qARzyVhf7Tg+pYgdu/SNJCYjO/Bp1TzJ7yfJQeg8fdgYgycGxFjeIU1OiK/LB9tIoZzsOb45TTL0Bt2CntpPKog0cWbWlYliQnp3wdW8JlBulCkghTMl5Vfu9Hk9aj6ouF8gYevQB/JOsJQ9/dyPXvDvgp76sjsdnAL3ppZS+L1J+KX0fT/phebtS8k/Ov3Ms2Ofy1YFzrZNo4kXjIPgePOsMT7tXqyNdb/EA39wBHBrll8M8SgzDytQ0SNgvWcwCXS6opogtk0vEUfwpCZE9nGLEKwzZS2KsVL2bYj7sov+8d9GcUGwzM5PM6Yw+pnl/5EqmX1GCcW4oeltxPH9JZR3cWTEugS4CQqjTgQYgMOLKHbRIyxPuSK2K5FA58EXIh+iGO 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: ... and remove the "MM" argument from install_breakpoint(), because it can easily be derived from the VMA. Signed-off-by: David Hildenbrand --- kernel/events/uprobes.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 5d6f3d9d29f44..259038d099819 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1134,10 +1134,10 @@ static bool filter_chain(struct uprobe *uprobe, struct mm_struct *mm) return ret; } -static int -install_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long vaddr) +static int install_breakpoint(struct uprobe *uprobe, struct vm_area_struct *vma, + unsigned long vaddr) { + struct mm_struct *mm = vma->vm_mm; bool first_uprobe; int ret; @@ -1162,9 +1162,11 @@ install_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, return ret; } -static int -remove_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, unsigned long vaddr) +static int remove_breakpoint(struct uprobe *uprobe, struct vm_area_struct *vma, + unsigned long vaddr) { + struct mm_struct *mm = vma->vm_mm; + set_bit(MMF_RECALC_UPROBES, &mm->flags); return set_orig_insn(&uprobe->arch, mm, vaddr); } @@ -1296,10 +1298,10 @@ register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new) if (is_register) { /* consult only the "caller", new consumer. */ if (consumer_filter(new, mm)) - err = install_breakpoint(uprobe, mm, vma, info->vaddr); + err = install_breakpoint(uprobe, vma, info->vaddr); } else if (test_bit(MMF_HAS_UPROBES, &mm->flags)) { if (!filter_chain(uprobe, mm)) - err |= remove_breakpoint(uprobe, mm, info->vaddr); + err |= remove_breakpoint(uprobe, vma, info->vaddr); } unlock: @@ -1472,7 +1474,7 @@ static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm) continue; vaddr = offset_to_vaddr(vma, uprobe->offset); - err |= remove_breakpoint(uprobe, mm, vaddr); + err |= remove_breakpoint(uprobe, vma, vaddr); } mmap_read_unlock(mm); @@ -1610,7 +1612,7 @@ int uprobe_mmap(struct vm_area_struct *vma) if (!fatal_signal_pending(current) && filter_chain(uprobe, vma->vm_mm)) { unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset); - install_breakpoint(uprobe, vma->vm_mm, vma, vaddr); + install_breakpoint(uprobe, vma, vaddr); } put_uprobe(uprobe); }