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 86836CF9C71 for ; Mon, 23 Sep 2024 18:56:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 098FE6B0085; Mon, 23 Sep 2024 14:56:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 048E56B0088; Mon, 23 Sep 2024 14:56:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E79466B0089; Mon, 23 Sep 2024 14:56:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C9B256B0085 for ; Mon, 23 Sep 2024 14:56:16 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 764541C6EAB for ; Mon, 23 Sep 2024 18:56:16 +0000 (UTC) X-FDA: 82596908352.17.0F7A428 Received: from out-175.mta1.migadu.com (out-175.mta1.migadu.com [95.215.58.175]) by imf26.hostedemail.com (Postfix) with ESMTP id 8D402140018 for ; Mon, 23 Sep 2024 18:56:14 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="Us/sNnd+"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf26.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727117679; a=rsa-sha256; cv=none; b=aemXfUrvSn1AhSlK7gnCD/SEh3DUk0Qz3JY79WznIKuMmA0WHOaKw7xw+2lHiqmr2wL/QQ joYpYqOa9Mnxet3nu7Rubc1Z18oE7NmFvu2yrkddmCM2QvOU7onOHv0PDSLXkOfZAO+PoN buN55AX/wrq8JIM1LpVRLaCGlNV1ph0= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="Us/sNnd+"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf26.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727117679; 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=e0rykSYoDaIuOPwn4/o1I+eteK3LgCREKD5/olJ0XU4=; b=GqmBDevEdOfs6t00Nt1YTzJU4LRBuzYNWs8xl3cykTvjoWaFjrqnZAoIQ1AfN+e9DKlPKv pQkTITr/dExdZLQ82p85+fF4sNJasUDLuBg8zGkCuUPuwej5vcnGVkH4egZgy8IA2lVuG9 /13XPKNS60z+mUoS9cFd6pXZm3EzbKQ= Date: Mon, 23 Sep 2024 11:56:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1727117772; 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=e0rykSYoDaIuOPwn4/o1I+eteK3LgCREKD5/olJ0XU4=; b=Us/sNnd+Bd3xmbugsQQtl/AKwtxjIlrdgh4Ju4wLuxPWyRCZhlx/eyHEOWYF6v+4rgcO62 w0Vkn/8J9uCPjaFqFqfF4UNlEDq+7BRYWJO32OrYpAjfdv7s3j1MZkuTxpq7ybWd/pYlKU U3hQHkQwI49zrfYUg8wEPhiPn0xTEtk= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Lorenzo Stoakes Cc: Andrew Morton , Vlastimil Babka , "Liam R . Howlett" , Suren Baghdasaryan , Arnd Bergmann , linux-api@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Minchan Kim Subject: Re: [PATCH 1/2] mm/madvise: introduce PR_MADV_SELF flag to process_madvise() Message-ID: References: <077be0d59cb1047870a84c87c62e7b027af1c75d.1727106751.git.lorenzo.stoakes@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <077be0d59cb1047870a84c87c62e7b027af1c75d.1727106751.git.lorenzo.stoakes@oracle.com> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 8D402140018 X-Stat-Signature: faosdcd7abe94ipb9twuerj4ab8pff7t X-Rspam-User: X-HE-Tag: 1727117774-306232 X-HE-Meta: U2FsdGVkX1+AvZ3v+TVitjD6i4EwWLNqM0xuQnF2AXGs2LpVDkfhCRoi5+poGZ4MCH8/4FVbhtUPqeMjtCPGY8rh/LV6PITrZSQ13105qil0Luezz+ST4Dwwl3M0MtIHaqdXPWRscXnysL6KW/WnH0P8zjc4LyecJqYqLz75A5o71YzJwDm7fWBg/r7DoAHc014DHU9EgMQUXtS6pKjHmoPRIt9cGkaq8Wyq6F7SiU+9aeMS/27Br4dunnoJGwNDik7EwbsmcIhKTzjDX6iLmc0meF7rF8ba7hCvx9r0BoY9a/P88g3B5nfA4txGiHKrl4MxP4jJf81MdYpxnrANze4DEfcluMLCDxXKsL62iMvlhtXWBUuzt2qm3m2dSU4Jdn4WysQZfpJ8NeH9T63rcgVeE+nxqmPqm7i2l2bwevd+rYkTkcbHt/6GOws/1RwrbOXrKQMvFjKGWmEbHGYByXJ7TA2y1JTkih+XyCbMEok8DOTkdnGMk//A0sK1klu7vun2pvQC0FpLXh8W8XpN8MDUBcW3xKjLK3SM5tjXLPGvoTyvsc6SWDFvm9xG2fxXDBHmiH0iNQl30Svm3NPLJZZ+XOtagHtUCL/8x+rdoOyMmliZ5EttRQ0hAwvzy7t2uH008eh0K4nEHu4VKo9wGtF3SqbBBPUJgGcqFzGc1U4yMbOoviAzTKczS89JsdZbeO/xQEa5zm2xTq5a/5iccL1JnAxqq4qfutQP8iUfF6G1GatltbxybdpC8P6/SoSHCfYlfKeHITCXaRgJneZI2KFhHusOmjHCX13HQJ8eJH1bicCoB+rCQjsfCXogexLLklLIUi1rr/QrofZCXmiGcsVRn6V/cABwhr409PzrOcK01rGxmcIhkTwzR27SChs5BPxSd1UnR1TJ3H1dsZjj3QLjzN5kBM8Z1+I598+dreiIYpJqp3o8YDe8klCHwMljC7DA1VjlqimAVT1xnMF G/mx9ieF unwDHOr3jwFLosiO0G5exj8YfOS6R/+tBirRtZKHfG87Y/9gnmX0uskAvWXapy+BkYO3u4QCQHqvS93g6rj0PpAu4/BdzsgXH+wUCyHP7TnG5RqtknILgULYoQTGu5xVllStKlah54NKdb69EKyrakXwWG/8yvB2URu6Iyy+z5HhCG5ZGJHdpr7oMWp4Wtpok2giY 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 Mon, Sep 23, 2024 at 05:03:56PM GMT, Lorenzo Stoakes wrote: [...] > SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, > size_t, vlen, int, behavior, unsigned int, flags) > { > @@ -1486,10 +1509,9 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, > struct iov_iter iter; > struct task_struct *task; > struct mm_struct *mm; > - size_t total_len; > unsigned int f_flags; > > - if (flags != 0) { > + if (flags & ~PR_MADV_SELF) { > ret = -EINVAL; > goto out; > } > @@ -1498,13 +1520,26 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, > if (ret < 0) > goto out; > > + /* > + * Perform an madvise operation on the current process. No restrictions > + * need be applied, nor do we need to pin the task or mm_struct. > + */ > + if (flags & PR_MADV_SELF) { > + ret = vector_madvise(current->mm, &iter, behavior); > + goto free_iov; > + } > + > task = pidfd_get_task(pidfd, &f_flags); > if (IS_ERR(task)) { > ret = PTR_ERR(task); > goto free_iov; > } > > - if (!process_madvise_behavior_valid(behavior)) { > + /* > + * We need only perform this check if we are attempting to manipulate a > + * remote process's address space. > + */ > + if (mm != current->mm && !process_madvise_remote_valid(behavior)) { Move the above check after mm is initialized i.e. mm = mm_access(). Shakeel