From patchwork Fri Mar 21 11:37:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 14025294 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 E6661C35FFF for ; Fri, 21 Mar 2025 11:37:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A0D47280003; Fri, 21 Mar 2025 07:37:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BE18280001; Fri, 21 Mar 2025 07:37:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 887C0280003; Fri, 21 Mar 2025 07:37:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 69DCA280001 for ; Fri, 21 Mar 2025 07:37:21 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C7D3C122063 for ; Fri, 21 Mar 2025 11:37:22 +0000 (UTC) X-FDA: 83245357524.22.EDC0873 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf11.hostedemail.com (Postfix) with ESMTP id 9F67A40008 for ; Fri, 21 Mar 2025 11:37:20 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=gKLjWuy6; spf=pass (imf11.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742557040; 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=/AdkIGrCnMsc+er9X66uqVETmxKiULUWSewMsh5Pldk=; b=trQ84HPNer32RSSZYEuRSTPyGfKUlcGYhP9v7e7P4REjjTaTZW6nEgudit80RU3HOhFzyY arqqUfMNBrGTbyPiW8jwoPTph5NLJlfOkRrY7Wk0kudRqkH4FMSl0v+/s3pGv0jRAMAGn5 PhVlKr9/KGtTNXoygOd10A2I08lLElI= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=gKLjWuy6; spf=pass (imf11.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742557040; a=rsa-sha256; cv=none; b=OvuZi0x+93DLyXVJq4kbUhFjWjiFq9nsEy657qH5/BVbuTDO0tNWU1ChirPuZ/rRu6Nr/N 1lSCCUI+L0X5AKDgjHdOZxkz1rBsd2+UbqScz9nD77BNC7jd7FinEEtYoD2+TP4Mq8Qcto 9DLrf0dL1v926Q9/kB9KOm/gz5KwFOg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742557040; 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=/AdkIGrCnMsc+er9X66uqVETmxKiULUWSewMsh5Pldk=; b=gKLjWuy6vsqFIw8SagXDhwxg7bpi1WrqdfnuL0+BizoKkH0nnUrmenTmp9UQbItR1pXXHg KQSSFJRPglSmMwfqCfsFo7GE4Jj4kOh8ydC8AntM7rhMaHTraIdLmSbgBMzBHnQkmQ72yd dK6vNb9jjap0YGZ4ERCLEGSexcr+4xI= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-669-7-n_S_gDPHSSwy_tFaigrw-1; Fri, 21 Mar 2025 07:37:18 -0400 X-MC-Unique: 7-n_S_gDPHSSwy_tFaigrw-1 X-Mimecast-MFC-AGG-ID: 7-n_S_gDPHSSwy_tFaigrw_1742557038 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-39130f02631so810820f8f.2 for ; Fri, 21 Mar 2025 04:37:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742557037; x=1743161837; 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=/AdkIGrCnMsc+er9X66uqVETmxKiULUWSewMsh5Pldk=; b=NAaUcLUrPqtPSJzXP43frKzDSeTkzm951VYJsYE6QtUMpup5+zLUqc2ivI2q/ChcD9 ArpI8ZraiC09HY6RuJ3U5ejrdLsquXRX+PVWo0x/JkB+yjmX+ihi5lBieQA4VCqqOEAI Tn4Kap5iVa+fW/zQkItk5S16XgMmITgrdduwKzl+RtqFtdDHpdBbuPdPfZhndlRUNiRd 9mcC5o+XpAEyvJjB8K5z9O54i0JtSoG+mItOncIfctrBCQ64Z4wnYnm67dRKuLnwdflP pp3viG5welZMztfCVPmCHN4IGVfHVTU4G+ukGH6g+6BjlLIfS0Cxleci7j5M1k5lIBqK IxDQ== X-Gm-Message-State: AOJu0Yzp+Z464Ur87CXY3siRCi7QPlEc8VW9G9mK2I1Omvpm7pQVlPuF rzQUM4wvy+ifH/R7EYdIG6lfdqmVjR12OReKHq24D5SK00ILSZ+fFZsPi902G1P0jzRpVV4VK5I ADjRmU2e3xb4+h6QD8MMKu+X38zO3SrZ0cCgKnO2WF9/3liOn X-Gm-Gg: ASbGnctCtN2H0FgLe2J2GPJFfBb0jpc3pr45866JY18mCOYCi37j0nsaRlBqFFLSpMB 7XnplDvubKsUHWptyBAUpqoYqV+t72UcIg7e+btpV+ajOfZU9ll1Gnk4hvJHwet584qtPocc3Yy JbqgxYr31ELbYgKO+xl6F1RuBrCvTcv60EEPy3+Jbp59Yv+hsIicmEChH/28BXk8eTavXxvqV/+ OjxG/WWQYfbUlfRfpGymIOj0uNXiqxWtaR8uyV7IvUyL1aSnswBwrrYZFzq+fygAKEhh13GIWUb P562GoUK7S9adFQa5Z13GPPlTsWU1z6cs61frgygjW4NfKQqbQK/j1DhOLQTAWdquaqVkMaRxju i X-Received: by 2002:a05:6000:144c:b0:390:ea34:7d83 with SMTP id ffacd0b85a97d-3997f90e7c2mr2841348f8f.31.1742557037618; Fri, 21 Mar 2025 04:37:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG49ODTrypvf9tYQ5TgQ34vttK3IHB4Rj01M+eydlpDxfAmjxfWJ7Zgo7XydYKuCca6cGe7VQ== X-Received: by 2002:a05:6000:144c:b0:390:ea34:7d83 with SMTP id ffacd0b85a97d-3997f90e7c2mr2841314f8f.31.1742557037213; Fri, 21 Mar 2025 04:37:17 -0700 (PDT) Received: from localhost (p200300cbc72a910023d23800cdcc90f0.dip0.t-ipconnect.de. [2003:cb:c72a:9100:23d2:3800:cdcc:90f0]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3997f9a3f36sm2189825f8f.32.2025.03.21.04.37.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Mar 2025 04:37:16 -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 v3 1/3] kernel/events/uprobes: pass VMA instead of MM to remove_breakpoint() Date: Fri, 21 Mar 2025 12:37:11 +0100 Message-ID: <20250321113713.204682-2-david@redhat.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250321113713.204682-1-david@redhat.com> References: <20250321113713.204682-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: kGbBjL0l2ahQHkVTOexYyJ4oYtgvuasCBeML-030rPk_1742557038 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 9F67A40008 X-Stat-Signature: fr49o8a7qmj3fjn1ur5ehk8k83uuyqxc X-HE-Tag: 1742557040-549786 X-HE-Meta: U2FsdGVkX1+ucTGQnUUEjJy/DLQtFTqna5dnECWfGPV8S5YsPJHDa9zGdlfwpLCWTwSAswvWUjJM6A93uaRy3+CG+mTpOgkZWcFU6yNFc1moQ80av1GG1OFdATA36E18HNwlrGuArMeovVjSwcAK1TIgNVClMF4Vvln8ShrAW/HHKckcV5O2nKRPxNG0a+DaebEOAQDJQOEyYwv32BQ3V1CfTu3r85gimpGtyf2tNoAX0tZtkY0snSptmvZzeL6ZuLnxhRd/6934fITpdPmnUb+ebu4rP+CvJ6+ZSRGCwhoSIiax3psamjWfIwGeRU+Wk7YeakWfhB3SQNe/0JBVMkw/vLd5hq4Jsv9nmci12qXIWvVnuznQY/3HElnB+hQZRHbxgy+K/AC6ZTISoHn6q9Dlz9ZzKPWtHevHuBVDVlysnGYwj1sP5Ml8PYw08bd5+BatbkOeLHDN8u4U2Lc8EsE2H1tUBzVN+BXb4C7U7sxkW7tkeIfdOvVpP2b7cm6Cyj9q6leat/IljZbVJ4XzXLj7vZPip1a98PcaGgBkFu4Q8CP4B3SmITUZgvjDWPjnkkWvWGji49FcdlO6p5E9BmdO/orXJHeIbkIdOj22ogcpGvQgXTwb+SoSILtthLXIOnKfGN8e4bILW2kGgEhlYQgqLq/my0F0AQhugS8SC65mS3zMZ/YofL96Vk3tg9IoXNE2WJ4HIJ3SDamOV1XPgrvb1EcGjg0OIX5OXuou7tuWhSZGJrKLYyoJOzZTvR6Wux0xPiQrrUJZOXOOat3TzT158EIRCrZo2jeSJy84Bgx6zh5mP4/mbOGGjaZpa0+iSYIYDi0EArIqfiZDpClOmBPOG9RXdztgrUA0LN/LAbU5AFnrmp2dpqLmpHlgi2FoHky/bIl/uTuYxaxULSEpXNO8Soxn2bal7vt1hnCayLpy6tYJt6gDvXSaeuf/de54ILaDiMkdelcmSO0kCf9 w0DsRMy/ NIhCCOFhW+PlpRr7o/6Qm4FAGaelIEp+Sx7ahT3rof2k4UCI33hunvNBreyVRzUw9R/WjLUKpXbcpvMORRjyR2Zj8vY6Vt2rzIdchX11QFBn8HZgxh3lfuqObQRWbWCfoM5Shke8O713gLltssk156gR3mMKyajKD9keluuwmAwI+qHHDD+FfWgT1JBpuE9NLh3LY7uCaGZDsBz3eXRVnloROwnI7AcbW8n0+YYVuMtWBehRlC7bJs0Dpuu5JiBWja9Nk2n6Ik3fOazZnZd2l7tJNzak4lQt1HoAwTx+xzc3FOp18BLNx/TLXY5JqycY7gTp/d9F7g1bWSaxiwPuTUQeU2QSSR6WcUGRil+vWB6UWqFh4jiHP8I5lHH1Un1jSNLJav9KNsUIWl1m62Tj3CRvx44wqPM42ZwVEgE26rljfts5BxHAte+X60inuGl2zSeHLB47AFw0qxX0Q9xBWy0gf84IvU1Pf600P18sjLOstNiMiZHHKmSSfN0I/ufLenY9Zqfa4EWdMNvYcUBXxMZ7CDXfaq1QqB1utFIMDDfGYlMmG3wZQXS7XkDHOJZjyrDsjlNs6D9gkUAq+NoCYrtQO9BzJZLeiAkLN 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. Acked-by: Oleg Nesterov 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); }