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 C2057C2BD09 for ; Thu, 27 Jun 2024 19:33:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31B116B0089; Thu, 27 Jun 2024 15:33:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CB826B009C; Thu, 27 Jun 2024 15:33:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 16B6B6B009D; Thu, 27 Jun 2024 15:33:20 -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 EE9606B0089 for ; Thu, 27 Jun 2024 15:33:19 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9A53DA1028 for ; Thu, 27 Jun 2024 19:33:19 +0000 (UTC) X-FDA: 82277667318.22.6B7578C Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf10.hostedemail.com (Postfix) with ESMTP id 9E039C0013 for ; Thu, 27 Jun 2024 19:33:17 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IQWMRnDA; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=lstoakes@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719516784; a=rsa-sha256; cv=none; b=kjxvEzWd5/BNI9vR3gZz5Zlk720aIBARzN7nFEdyCN5iFqIR8qckELysWCBcBjScoDmpHv ybhHXk1nTKnio7EvNUlJzY7386xjXjk6nkzC73sbAeSHs72pP3Edj3HMZJGBbMmZqpY0Ig 3HGnswLsxGbj84GM6HNKX3m/ZAE7Mtw= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IQWMRnDA; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=lstoakes@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719516784; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6dv0h7ZpGrbtyUhSgUMY22uFhyPWIrX8D0BLFs9pOd8=; b=tORK4w5Kz6ypxPNm+ZB0sXmUTkrVVbzyl23MKSEsODph1xCNEY/5dXuguJvBWDNu5lj3RQ BnV8fDzr4JbnnjUTJG2SSOYgIrORpbumAVnEzyC0hgP9sMgBkmcvwC809flwfbhC5I+7g2 5lzSdCZDMT1XtmExX0rYtXcc7jeqoSM= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4256742f67fso6731625e9.3 for ; Thu, 27 Jun 2024 12:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719516796; x=1720121596; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=6dv0h7ZpGrbtyUhSgUMY22uFhyPWIrX8D0BLFs9pOd8=; b=IQWMRnDAO03LZDRAclp0qrGRRP0APICIXZ8BRjUKTF2Giy6GhNtZYLdGAz18UTvIdA 8WXUvYDx7nSqbt/uiv9GJUHD7LJEAqYY55cKQKtfFh0jgHEarydKLhP+suSf2474leUg GRFdkcNZkrsmtCtKVLLwefMDXdUjtEpps9pSTEzqOwYa3FS6lzqj/xgKkc0XyiixLDz0 xMof9YZY7wDUXo+1aL1Bgb05nBnHYwMLX/DleDWVEFh3m61Y4qkXXx/E4c8mpwSoEjdu Z8H9oZm8bG6qXp3BCnpseeKuxEOqAQLcpTo3Tnz/gi5vr+Rtq58XDbUDYvtvghWo+WWH njXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719516796; x=1720121596; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6dv0h7ZpGrbtyUhSgUMY22uFhyPWIrX8D0BLFs9pOd8=; b=lGNaiJZYR86nowP8nVpZbBC8MzLDeUCZM06Is4F2r1ccnAWPVlk0/1NPgnsbgymIvC /KYeldIToS4FfHiht0vC8BoGm1SdQyrZpuzTEuwbTiECQ5uph1ngSyLZ21Sn3ksn5G0I MPcKgX0oMFn2mv262BTskU60/DkX8vU3wYZppSzlE4BQGNMRrd6ZYuCvXHTShoQBAIej 7HcjtKLN64VcdY2PXEAdZB+DmZAHzFDSWIcjshGiRqt5QUaHfKKqvvWhDbO0YPdy+9pL 9jGzDpdJF8geaVkUzFe0pK8yC731Jq/Rszs6RHn+TaTt3gmUzMLNJFnks/zfGs8I5yUu UiGQ== X-Forwarded-Encrypted: i=1; AJvYcCUU+VM4G+MFZjhgU9cmeZ0UdGNA2sTKUI+ReJhm7m54RpeJeKD4RZyJTYPlPSHTbcgIY8QWm0RJ3Ss94FLbgSIjhoo= X-Gm-Message-State: AOJu0YxlBvm0uquJJny9W8tvCgPQYJliA+/5eSNucdCqc2njyX6v2bhg 8mhRN5BopVTMYC96nC9jH7xUw5779e6KjR+kB9aXptRdVct4B6Ib X-Google-Smtp-Source: AGHT+IFyIxVWGbpEBoxmoaMpNj/vL4JI2RqcOmsmmMY4OaTB9GpE5AgHMSrm6flrakLx37QA/tv+fQ== X-Received: by 2002:a5d:6485:0:b0:366:e9ec:ca64 with SMTP id ffacd0b85a97d-366e9eccabamr12279659f8f.54.1719516796035; Thu, 27 Jun 2024 12:33:16 -0700 (PDT) Received: from localhost ([2a00:23cc:d20f:ba01:bb66:f8b2:a0e8:6447]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3675a0fba0bsm131000f8f.69.2024.06.27.12.33.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 12:33:15 -0700 (PDT) Date: Thu, 27 Jun 2024 20:33:14 +0100 From: Lorenzo Stoakes To: "Liam R. Howlett" , Andrew Morton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Vlastimil Babka , Matthew Wilcox , Alexander Viro , Christian Brauner , Jan Kara , Eric Biederman , Kees Cook , Suren Baghdasaryan Subject: Re: [RFC PATCH 2/7] mm: move vma_modify() and helpers to internal header Message-ID: <2efff6f0-91b8-45e5-bd3b-9cb304579140@lucifer.local> References: <2fb403aba2b847bfbc0bcf7e61cb830813b0853a.1719481836.git.lstoakes@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 9E039C0013 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: cp56q9sx6jea6b396zrrxcbdbq1mwfh1 X-HE-Tag: 1719516797-463002 X-HE-Meta: U2FsdGVkX1+KOmSMc1iuAZ2u9bTBAz76LJ8ET9uERGhwVK3l8/Kr/XZ+Dh9/gHY+MiLnppgpXJ36YlFdahdL3DIntUVDcVDEMheMRLbzgB9lu/PjXqpguSF96vCfwonRtgb3U1s+QRCLh6Hvf9Six4Sd9/Zgi/HEVh9hwZWU9BRiNglwXshofGvAmuqMuwceRohgmOIIp0W1FkjYx5fGKtLt5XEIeHXd9fmk3lu6U9V6ifwoBuYqqtDBwK1zU/6s338/100gu62qZm3C+pdM5gBWi8njuAfEkDgPTfnM59hdHDPlvcCbNo7VLBmQzGS+m7pWHuzFmIJlkMexghQvf+7oAYPNu4YhP8O6xIN2OZlmvyPE5BF+GHh4JyJXRH5DW04/5EDFsLKEZ3MQ0BxEKJDuPraAy5CuCyml0mJv2I6i97yXk/nEJdtiS6kuIfcZIsu3r1jEzwpysDAQvalHRzoXOUOSnjUOcpLXPD9xFacgw1qqiyh9wEuB/4ts0YnWafdrpX49sig84/cfMptxztLdYbbaRzxhmDcwhvd0UKCa4pdie2j/CrWj41FrpXzXH1j541LLRL8rTS3++sw0j8H9egeau8xkxpUXLUHWCol+6ueeHjPdoIvxElN1SdWMbwg2bKx0t0vqqp/V72n824L1WYNdo+NBc0RBUWXYh0tAhkPIjmeR3l3D8In9K+w2vOFGgj6rsragueXFeyt8yJnRNoXb58qwFzQCfuy5cAjwft7WniunVWS3dbr/3xD0gT1zaY49I0F/lK0Drg4S9m84OIe0OqICZ0P3vyu3tEhaxnDy0DKUTTRaSY/5SpGjTbZMLtimZ9T+ECq/mYqRMajM9cn1ZP/2LEAIBM6yS0s8yRveOh7HjuqhL6CpHtuLwZ9p+NNr8+apKDH7RLBqasYlBnAX1fMgBTO5HELYCzfC6EZEQdGrSINvZ41L99vQ3prTXs7GqmeaNWFupY4 O461cB0I BfivLkp/Pm6T2af4OdFQQ7KopZx6pO0MHoJzVJ5Aln2t2i7ePR7BTaQo/QK+JXiGFPSM7CnpGd1z5lBh9iTClOMcjHl64vmzyjQdl2SzeTGX5FVsy7UniGYPzUGBVFFbfYMtMGOlAs0amAyhl36CLzcAJ0D6t1EigecXaqtqPRRepYVW2AEUfFVzRlvkShCtm6/7w8aXfVkUIFZ0aemFpcyALh8tscyfj+CXHd1ZcpB2KA6KeVhHwMYisUfESI8O4xwBxm8rqgWkQj0ZkjGRqSVAthoApC8lyj2t+JWRrHG9X7icR0tCqczhjksD+ekDCC+UaMBcbIO80++6U//86meV1vB7tflpZVMBceLR2tTqWp3V8CS6pt88UFTTT1+8x58JjjEFpc/lOsmIQxmVi1/LFzTaUCuO3TKceCRyk9oMtnXSdn3iAkzHW4Ld7joYAJZZOZjejJ4g8LsqbD2sczBezWo5QbcLi6j5hPHRbqdRJA8q4GQm71zq33xvIQmm/BAsxklCbKs0+c394T6gBHYIJvw== 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 Thu, Jun 27, 2024 at 01:25:55PM -0400, Liam R. Howlett wrote: > * Lorenzo Stoakes [240627 06:39]: > > These are core VMA manipulation functions which ultimately invoke VMA > > splitting and merging and should not be directly accessed from outside of > > mm/ functionality. > > > > We ultimately intend to ultimately move these to a VMA-specific internal > > header. > > Too (two?) ultimate of a statement. Ultimately this was the ultimate example of me ultimately rewriting a sentence to say ultimate while forgetting that I also said ultimate ultimately later on in the same sentence, leading to a penultimate ultimate. You offer me an ultimatum on fixing this in order to receive positive review, so ultimately I shall relent and do so on the next respin. > > > > > Signed-off-by: Lorenzo Stoakes > > --- > > include/linux/mm.h | 60 --------------------------------------------- > > mm/internal.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 61 insertions(+), 60 deletions(-) > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index 5f1075d19600..4d2b5538925b 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -3285,66 +3285,6 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **, > > unsigned long addr, unsigned long len, pgoff_t pgoff, > > bool *need_rmap_locks); > > extern void exit_mmap(struct mm_struct *); > > -struct vm_area_struct *vma_modify(struct vma_iterator *vmi, > > - struct vm_area_struct *prev, > > - struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - unsigned long vm_flags, > > - struct mempolicy *policy, > > - struct vm_userfaultfd_ctx uffd_ctx, > > - struct anon_vma_name *anon_name); > > - > > -/* We are about to modify the VMA's flags. */ > > -static inline struct vm_area_struct > > -*vma_modify_flags(struct vma_iterator *vmi, > > - struct vm_area_struct *prev, > > - struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - unsigned long new_flags) > > -{ > > - return vma_modify(vmi, prev, vma, start, end, new_flags, > > - vma_policy(vma), vma->vm_userfaultfd_ctx, > > - anon_vma_name(vma)); > > -} > > - > > -/* We are about to modify the VMA's flags and/or anon_name. */ > > -static inline struct vm_area_struct > > -*vma_modify_flags_name(struct vma_iterator *vmi, > > - struct vm_area_struct *prev, > > - struct vm_area_struct *vma, > > - unsigned long start, > > - unsigned long end, > > - unsigned long new_flags, > > - struct anon_vma_name *new_name) > > -{ > > - return vma_modify(vmi, prev, vma, start, end, new_flags, > > - vma_policy(vma), vma->vm_userfaultfd_ctx, new_name); > > -} > > - > > -/* We are about to modify the VMA's memory policy. */ > > -static inline struct vm_area_struct > > -*vma_modify_policy(struct vma_iterator *vmi, > > - struct vm_area_struct *prev, > > - struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - struct mempolicy *new_pol) > > -{ > > - return vma_modify(vmi, prev, vma, start, end, vma->vm_flags, > > - new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); > > -} > > - > > -/* We are about to modify the VMA's flags and/or uffd context. */ > > -static inline struct vm_area_struct > > -*vma_modify_flags_uffd(struct vma_iterator *vmi, > > - struct vm_area_struct *prev, > > - struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - unsigned long new_flags, > > - struct vm_userfaultfd_ctx new_ctx) > > -{ > > - return vma_modify(vmi, prev, vma, start, end, new_flags, > > - vma_policy(vma), new_ctx, anon_vma_name(vma)); > > -} > > > > static inline int check_data_rlimit(unsigned long rlim, > > unsigned long new, > > diff --git a/mm/internal.h b/mm/internal.h > > index 2ea9a88dcb95..c8177200c943 100644 > > --- a/mm/internal.h > > +++ b/mm/internal.h > > @@ -1244,6 +1244,67 @@ struct vm_area_struct *vma_merge_extend(struct vma_iterator *vmi, > > struct vm_area_struct *vma, > > unsigned long delta); > > > > +struct vm_area_struct *vma_modify(struct vma_iterator *vmi, > > + struct vm_area_struct *prev, > > + struct vm_area_struct *vma, > > + unsigned long start, unsigned long end, > > + unsigned long vm_flags, > > + struct mempolicy *policy, > > + struct vm_userfaultfd_ctx uffd_ctx, > > + struct anon_vma_name *anon_name); > > + > > +/* We are about to modify the VMA's flags. */ > > +static inline struct vm_area_struct > > +*vma_modify_flags(struct vma_iterator *vmi, > > + struct vm_area_struct *prev, > > + struct vm_area_struct *vma, > > + unsigned long start, unsigned long end, > > + unsigned long new_flags) > > +{ > > + return vma_modify(vmi, prev, vma, start, end, new_flags, > > + vma_policy(vma), vma->vm_userfaultfd_ctx, > > + anon_vma_name(vma)); > > +} > > + > > +/* We are about to modify the VMA's flags and/or anon_name. */ > > +static inline struct vm_area_struct > > +*vma_modify_flags_name(struct vma_iterator *vmi, > > + struct vm_area_struct *prev, > > + struct vm_area_struct *vma, > > + unsigned long start, > > + unsigned long end, > > + unsigned long new_flags, > > + struct anon_vma_name *new_name) > > +{ > > + return vma_modify(vmi, prev, vma, start, end, new_flags, > > + vma_policy(vma), vma->vm_userfaultfd_ctx, new_name); > > +} > > + > > +/* We are about to modify the VMA's memory policy. */ > > +static inline struct vm_area_struct > > +*vma_modify_policy(struct vma_iterator *vmi, > > + struct vm_area_struct *prev, > > + struct vm_area_struct *vma, > > + unsigned long start, unsigned long end, > > + struct mempolicy *new_pol) > > +{ > > + return vma_modify(vmi, prev, vma, start, end, vma->vm_flags, > > + new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); > > +} > > + > > +/* We are about to modify the VMA's flags and/or uffd context. */ > > +static inline struct vm_area_struct > > +*vma_modify_flags_uffd(struct vma_iterator *vmi, > > + struct vm_area_struct *prev, > > + struct vm_area_struct *vma, > > + unsigned long start, unsigned long end, > > + unsigned long new_flags, > > + struct vm_userfaultfd_ctx new_ctx) > > +{ > > + return vma_modify(vmi, prev, vma, start, end, new_flags, > > + vma_policy(vma), new_ctx, anon_vma_name(vma)); > > +} > > + > > enum { > > /* mark page accessed */ > > FOLL_TOUCH = 1 << 16, > > -- > > 2.45.1 > >