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 0F1B0C282EC for ; Tue, 11 Mar 2025 12:33:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63B69280004; Tue, 11 Mar 2025 08:33:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5C2C5280002; Tue, 11 Mar 2025 08:33:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48BBD280004; Tue, 11 Mar 2025 08:33:30 -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 EEB6C280002 for ; Tue, 11 Mar 2025 08:33:29 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8268B58063 for ; Tue, 11 Mar 2025 12:33:30 +0000 (UTC) X-FDA: 83209210980.22.099F08B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf24.hostedemail.com (Postfix) with ESMTP id 7036418001A for ; Tue, 11 Mar 2025 12:33:28 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Urmi5qRe; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf24.hostedemail.com: domain of oleg@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=oleg@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741696408; a=rsa-sha256; cv=none; b=E5Ec+fp3Y1/4vD5dbigQtm0l0MufvliceiFkPFE5muWAEaIzB6wby4IWjZ5xgcKGD0+wLW iM1cSdCIX4s2VrHQpYH+5spDeU3vtO8dwq1yoNX8aASNnqsj0k0ek/le1q5d5QUUJ8Pb13 GRLj9hd/ho+r28+MOsyhLp+kPPN8lx8= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Urmi5qRe; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf24.hostedemail.com: domain of oleg@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=oleg@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741696408; 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=palKyBcsgnYyLT7TccByqHvOUnQeIY6hqkQdRDklSI4=; b=Gm93L5LW1QxlCUjqchFCrmX/2yhXFC2zw89kwZoK4Mm6wzYaABCG0Aai84IabZo27guXt6 IQb9BlV5xQG/OMdskLeIFqBtzPWkFrOA9aOA5XPHlNoXpP+kUS/qTIBE2Os517NN10d+Sh 7Z6kJuLtNDKiROFmxRBuNtt30bMGL8M= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741696407; 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: in-reply-to:in-reply-to:references:references; bh=palKyBcsgnYyLT7TccByqHvOUnQeIY6hqkQdRDklSI4=; b=Urmi5qRe007m/HQgoZNd4Sf48Pk4nH0zW31jj4mefYkcFo6nYBxY0P/QYYzdInqNfdSBgH ea6ClwZ7y8pygpmYmrplUsH6bIFCaWj/NmV15byJ1vodtVn/epHSjlVH9ZTwOgA4V1AmzN 7t1fEmVZ9/ot5tmdbtc9H3ELezT4Jz0= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-571-hD9d9DKnN-OKC5JK0gX1hQ-1; Tue, 11 Mar 2025 08:33:26 -0400 X-MC-Unique: hD9d9DKnN-OKC5JK0gX1hQ-1 X-Mimecast-MFC-AGG-ID: hD9d9DKnN-OKC5JK0gX1hQ_1741696404 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D7D2C180AF5E; Tue, 11 Mar 2025 12:33:22 +0000 (UTC) Received: from dhcp-27-174.brq.redhat.com (unknown [10.22.90.58]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with SMTP id 5616F180094A; Tue, 11 Mar 2025 12:33:14 +0000 (UTC) Received: by dhcp-27-174.brq.redhat.com (nbSMTP-1.00) for uid 1000 oleg@redhat.com; Tue, 11 Mar 2025 13:32:51 +0100 (CET) Date: Tue, 11 Mar 2025 13:32:42 +0100 From: Oleg Nesterov To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Andrew Morton , Matthew Wilcox , Russell King , Masami Hiramatsu , 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: Re: [PATCH -next v1 3/3] kernel/events/uprobes: uprobe_write_opcode() rewrite Message-ID: <20250311123241.GB3493@redhat.com> References: <20250304154846.1937958-1-david@redhat.com> <20250304154846.1937958-4-david@redhat.com> <20250310170320.GC26382@redhat.com> <79ec5aa9-1937-436e-8cf4-436746142f7b@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <79ec5aa9-1937-436e-8cf4-436746142f7b@redhat.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Rspamd-Queue-Id: 7036418001A X-Rspamd-Server: rspam11 X-Stat-Signature: f9mwdp4mcas86obsfdwzuq6yr3dj11x7 X-Rspam-User: X-HE-Tag: 1741696408-888393 X-HE-Meta: U2FsdGVkX1/buLKdVi/qmt3UsL5D02ASQJuY0+hfE1JspQ/+rUhyGYPkF0xiHsgy0Zd69Wmy8A8Z0RjrnVvambsHVCvKaL+FSYPKd7iiT0FaOXXSkMKCIMX20+WUMcV+aQFO8shSIQKNRBG/yQ2x/N3j656/QlORYrAnNMZWRgSqknxOalQqh0UGmi60gZSBWmszd2l27rFBDEBVKxh4QMKqJtjoaj5xGSQF6NniKlQA7H34rlhiI8gznkk+pnecUlZnC+Mc8Fp3AF2nGIbKZXKH6RnACD5OTj+IIeSw/qS4EIJsXjzuDrzWF861YglAdnTZACC/c9tPx2HK/9h0MPVHFWXkQIpYEboSshiTOznYkZEAGEdY/sudeZoBCr5ls7u3kA3RN91AgXBc/2r/Gk93ky7Emen+07sV/yYfBiAezEJFyaif0Yf7w4c6AZGDrlITBzAEl/XGpQE5x5MfC6zQBxBtB5jtLAYlvpp4ISDBUNX70dBk8Wg7LhaIzMvv6xfxIIiCoEhdmX1BITgOMNcrWWoAx+oX31jFFD1TZv6g9ERtf04R97sPEADkPMzstaEi+7/R1+NhYizU5caagYqYC2rD2ue5khp1SFZ6wEhUTgbCnoaG9ekWc9QXeA8mIC8Z7VnQfXVEVLa/Bkf+e0+ACreaMeaLXHyrgIpPN3C1pXgxQG2IPOjOybP0V1ufhQmeZZ5BVyWwqps7PqoL33ZoKRiZr3ZsEAll6/clyozq2fPUrixxrUKNEeBD8yBeTyUkfTYs6NffeihSchWM4k04dHx/E4+QAQGjWwuRnTHOJImswuGYbzGN4FGnalEPWKSkblMPqo+pUJDqqYHoUP+fdiRaIXSbj9Ud1VM6Quzkafm3ZK/1ToYzoWi3XOQ2lqpXPGukwhiSCqQrzQTcL/D4hybOYpDtYKaATJFEuYw0QrA1qawyAt50I9pRXRcbgti0omADMLgaswLo5VC 0/Rxj+TQ YkypX/AWQBVwoYmCWYe9WKbTEvF2PqzhCynoUtZKvaK51ezuzPZ7P65fiDFU/b3Kl/7k0A378jWXt6JkgVZNrygPdZ7r5E6G5+OOMyqCxc/yIAIIl5XRRjyp5PjLQxqUJp2M3HRCq2SxNm+EMuMMvF/8AWxE2FPBrpUVzUlgFoPTe0Kh50yslzuuFUhTT9CvIREXaUmNPGcN+TGXs2pUF8E8BwcBq1vvxYQ6IoxYk1jX5ke98gHLiX79rM4W6RT7x2PoROyovfPpFiffWeyEn4dULkU0CtNjXS52pX6BEzO1efjXiHgZixvmzC4zGaT47l1Jt+svV1nHwRHdYqOaXnJAqEJEnKpgfQZeMC3FjokaB0lA= 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 03/11, David Hildenbrand wrote: > > Regarding both questions, the code is fairly racy. Nothing would stop user > space from (a) modifying that memory Yes, but we don't really care. uprobes.c assumes that user-space won't play with the probed memory. Note that if is_register is false, then vma can be even writable. Hmm, why? Perhaps valid_vma() should ignore is_register and nack VM_MAYWRITE ? But this doesn't really matter, say, gdb can change this memory anyway. Again, we don't really care. > >do something like > > > > /* Walk the page tables again, to perform the actual update. */ > > ret = -EAGAIN; > > folio = folio_walk_start(&fw, vma, vaddr, 0); > > if (folio) { > > if (fw.page == page) { > > WARN_ON(is_register && !folio_test_anon(folio)); > > Yes, that would work (we could leave the WARN_ON in __uprobe_write_opcode), > but I am not sure if the end result is better better. No strong opinion on > the details though. Will, this way __uprobe_write_opcode() will look a little bit simpler... But I won't insist, please do what you think is better. Oleg.