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 BA5A5C3ABAC for ; Tue, 6 May 2025 10:00:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C5FC6B008A; Tue, 6 May 2025 06:00:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 776206B008C; Tue, 6 May 2025 06:00:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63D516B0092; Tue, 6 May 2025 06:00:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 4681A6B008A for ; Tue, 6 May 2025 06:00:42 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 665BCC223D for ; Tue, 6 May 2025 10:00:43 +0000 (UTC) X-FDA: 83412038766.08.03CC5A4 Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) by imf16.hostedemail.com (Postfix) with ESMTP id 6A184180016 for ; Tue, 6 May 2025 10:00:41 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=iD8FFPnY; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf16.hostedemail.com: domain of revest@chromium.org designates 209.85.210.45 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746525641; a=rsa-sha256; cv=none; b=sVyVF3LbeMq+nr7P/baJUx1NxcJXvO+ryHi9X0OTH+FFxfiHxF2iAD8m0JlAqhdz9D5CE8 wxMkDAb8UdmCsuNggbGAltL8MKSFJrvXLDeVWiAsYeapc7HHVqrztgPlQmEexS3avyjnAQ 0bGQUOwBaFdd6ubvHK76W8lWeDR+n6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746525641; 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=PgnwHbz1AjhGioq038lpvG95tXZpXvS33HP9z+P5ExU=; b=NK5WuROABcgC1mhZYEaovyQzF7DA7MEevZ/8j7oBWFKtsAdX6nZDuJ6KXXLjvOhDI5XxOA 3V4VxNWjy7vK4Fegstzx8kkk7aHJOfudMFGeJXKM1rzIm+dT0Si+URV0kG27IQOX7E+NeS do/+gWQV5YEdcLMBnaUt09/aWZIlcPU= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=iD8FFPnY; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf16.hostedemail.com: domain of revest@chromium.org designates 209.85.210.45 as permitted sender) smtp.mailfrom=revest@chromium.org Received: by mail-ot1-f45.google.com with SMTP id 46e09a7af769-72bff73ce3bso571138a34.1 for ; Tue, 06 May 2025 03:00:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1746525640; x=1747130440; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=PgnwHbz1AjhGioq038lpvG95tXZpXvS33HP9z+P5ExU=; b=iD8FFPnY+eX9t62/rX9dosWvgl3sNr3FI5St0jVGdC9DgSqwlCjwo8RbX9o8keBnvG TjXftDlLQCgAdW31Z76RlxSy5O+Kz7gIG1S7enDSd9npB9pfUwBt8Z9da8REDFehxcyG ii8VqqBGySx7Yh0NW3vXZQmigNMF9f7NnhNRM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746525640; x=1747130440; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PgnwHbz1AjhGioq038lpvG95tXZpXvS33HP9z+P5ExU=; b=rAf+eJIVXBK25j1zfa/Ct2TxxheOhu8r21lF2pej7YzpNVqNWG7/BFpKpumbKNE5pl pqCqp3OqpDIUektfDLcOsTZ75G4EnhHr73aPeFmfJRq/4GtfqVyA8aVg8bGwCFv7FO5z mAMYdQ0XexzjHvQJGDnw7y+qiYwIR4CjFikLueI4TxIC4V9VQOtK1p7g3Tk38nVInnw9 Lvk7AKqzY8FGHHppxwwUlvntYNOPLn/iEqh4m4AWNf6gjZIFi30/GT2mVYdtLpNNgWhb ZESHuHlPmC3CRG016NM4vv8zwo/fJKXbgeRtP2p2rX5/BjoCVj1YhcR8JFNlt8T53x4V ipyw== X-Forwarded-Encrypted: i=1; AJvYcCVrTslY8a5xHVb3dGF4v327VmYmPxeXnBkFjS+b+yIGe9VwZ+2OZCDT2m8MoV77R8hnZgrEBUuDQA==@kvack.org X-Gm-Message-State: AOJu0YzCwqDvkveBYhveoz2zteHCWVrT+BNxWVJhf2zFg3Ps0+JVBwW4 ANJtfZttltkuavLyRjFG6bjK6hMZ9IgUlX53WiquC0kJNk/DeGZj4y6qhndtphrGeST9RLDn2hD Xisn+wdibBzZDZnZXYf8FJx4pA+HBp4zJkiAO X-Gm-Gg: ASbGncvvTPCQKApwZ1YapR1k1Mx+sJWsMxX+HAtaMlPRGcAJ441Z9lv/lYXpZj5VRCI 9ZFjpIe8f+ji8mr6bpAgxS0+LyIxPcJi7Bx524JpTb+7gjJqKn01hifLXol4bcLnuu6JDHcNZzQ nf8yzUV72ujvIA7l4x+o7gSFMKIYIWGNPdrT24rDdpN786bJxfEg== X-Google-Smtp-Source: AGHT+IHhiyIn/3nXmyB0TYKrtQeZw6wh97jFrO+F43EodTx1tAmH3sRUHkuhHaTX6F/Xwh2Vb3HsEaBkMH8rLIg5VLU= X-Received: by 2002:a4a:e0d9:0:b0:606:3a5d:c7ad with SMTP id 006d021491bc7-607ee513583mr2347984eaf.0.1746525640269; Tue, 06 May 2025 03:00:40 -0700 (PDT) MIME-Version: 1.0 References: <20250506095224.176085-1-revest@chromium.org> <20250506095224.176085-5-revest@chromium.org> In-Reply-To: <20250506095224.176085-5-revest@chromium.org> From: Florent Revest Date: Tue, 6 May 2025 12:00:29 +0200 X-Gm-Features: ATxdqUEWe64mgnWNWtDc2kPZf5XuKvFECDO9Vew2NFN-uLRlx3rHuyFczgLc0LE Message-ID: Subject: Re: [PATCH 4/4] mm: consolidate VM_HIGH_ARCH_* macros into parametric macros To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: catalin.marinas@arm.com, will@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, akpm@linux-foundation.org, broonie@kernel.org, thiago.bauermann@linaro.org, jackmanb@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6A184180016 X-Stat-Signature: 8w6qdj6a9zod1ibdfkbc4y577ek3y5k9 X-Rspam-User: X-HE-Tag: 1746525641-341326 X-HE-Meta: U2FsdGVkX18Lk3+PdB+NMtZUFB5xm113hif5bc2sxw+/lo8stW5L0jTiF4qj5/QuletB+/uP2nHhP2Sa/5Cn0AR7QSOzsBcCn0WxAyPHwmPmRyVuZCHbrpwInqnFayu9nxjD21wcUufG1E5g+xeQ8lc5qLfcYcqV76RJlT3p5J7ScXR4wWUk6R4Q/1Xz7oPg4uxvdKKG6dZ9MIluFom+itkaRa2xyLfWTrP9dvt2ljyxCBYsiCpkaQxBtt7qdGoJehMVJWvKRGglX9pMDbhbr2u9MyvuNJU4Sd6UyVcj7kmLGGNhVCfr/XkfPxgYplZpG8mZ1HyyUn2cLxJjr1wMz0TLusRrsmJqfYawsF9IHkL5w8UmoQouTYntFFTL+p+wRrnV+T/VjGHCWL2R6rgfcA7anS9udW5puvgxEcjcTnPdTqz3QavbQHGwAAzVz8zui/cyKCM00JAVLL6x206ASg4kYAMK0QvQzFggTJngy9RDpA4xIVf5CTT/gXAthqNtNxtmsiOrJD0VLX7a2r133E/O4WUdIUL3jE+4PpP+SmCILbLWv9RILGLAz81x5J+JxxkGja2n8HsROFZ2QL0KphQ6Rp17ZI5H218fIvSmbKcwe6yAvBSRSL5rBZ3/JbP2mBU80pYgb2LGTesNqEB3Bd3VqVZbrfewAc4+nYxMTuvZ3pDxUZjqQ30YW47lFSvM1RSC3H7Ov4hAKRsDkqEbIrNKaH3D7G3YOUeL6hOO1B0dgiFgeAOxj0AlRqgAZWQl1r3w/rlv9EMWj0QnlYXtBvYjwF4UKDYDsByXqkwPVYy/m9qxFKvGnK3B0fFlIu+OPDo7MTUqTLA2RP4AzYCXZ9f9RMWtBNptvtYr+u/ExL/qGBaK2odWtdMeirn9mxWflutj+mLZ/rvylyuXWXvnrdpOD+8PJPQT5Qd3L/HwqgDi+I7Wg/5Q61QTWZq3QWlMrqmgbvrAjX29bxGkKjR Dl0lpEzu nq/g0l9vRQ284blucmhhROLlvHCuJ9w8omO1gzSmpkyEPKuLqsE8arpItzacoGNMs+Wr7lIbfJoHeqBdB0ncYygxnWmbaSyYoMi1wn6CLsPxVk6dgUQBV7l13XWODRKG1nfYqC8POqIpL3T1T8JKXNzWSrx5dvK+iKLlnHlPOJuzUOydRnwB1yUiGuL2+MIsWA1sn8iDiIUy0DK09f9IoTii1MQzjYmGM5f1N+df1Jy7d2FBOO+Kul9OQ2jPm2VvQczxmnfy27NJC9TU= 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 Tue, May 6, 2025 at 11:53=E2=80=AFAM Florent Revest wrote: > > This reduces code duplication and chances of mistakes. > > Signed-off-by: Florent Revest > --- > include/linux/mm.h | 50 ++++++++++++++-------------------------------- > 1 file changed, 15 insertions(+), 35 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index b12549f0a6dce..6750020d5ea37 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -298,42 +298,22 @@ extern unsigned int kobjsize(const void *objp); > #define VM_MERGEABLE 0x80000000 /* KSM may merge identical pages = */ > > #ifdef CONFIG_64BIT > -#define VM_HIGH_ARCH_BIT_0 32 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_1 33 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_2 34 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_3 35 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_4 36 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_5 37 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_6 38 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_7 39 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_8 40 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_9 41 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_BIT_10 42 /* bit only usable on 64-bit arch= itectures */ > -#define VM_HIGH_ARCH_0 BIT(VM_HIGH_ARCH_BIT_0) > -#define VM_HIGH_ARCH_1 BIT(VM_HIGH_ARCH_BIT_1) > -#define VM_HIGH_ARCH_2 BIT(VM_HIGH_ARCH_BIT_2) > -#define VM_HIGH_ARCH_3 BIT(VM_HIGH_ARCH_BIT_3) > -#define VM_HIGH_ARCH_4 BIT(VM_HIGH_ARCH_BIT_4) > -#define VM_HIGH_ARCH_5 BIT(VM_HIGH_ARCH_BIT_5) > -#define VM_HIGH_ARCH_6 BIT(VM_HIGH_ARCH_BIT_6) > -#define VM_HIGH_ARCH_7 BIT(VM_HIGH_ARCH_BIT_7) > -#define VM_HIGH_ARCH_8 BIT(VM_HIGH_ARCH_BIT_8) > -#define VM_HIGH_ARCH_9 BIT(VM_HIGH_ARCH_BIT_9) > -#define VM_HIGH_ARCH_10 BIT(VM_HIGH_ARCH_BIT_10) > +#define VM_HIGH_ARCH_BIT(i) (32+i) /* bit only usable on 64-bit arch= itectures */ > +#define VM_HIGH_ARCH_(i) BIT(VM_HIGH_ARCH_BIT(i)) Argh, and of course I forgot to squash two local fixes before sending the series out... This should have been VM_HIGH_ARCH() here (the _ at the end is a typo) > #endif /* CONFIG_64BIT */ > > #ifdef CONFIG_ARCH_HAS_PKEYS > # define VM_PKEY_SHIFT VM_HIGH_ARCH_BIT_0 And this should have been a VM_HIGH_ARCH_BIT(0) ... Anyway, I think it still gets the point across that it could make some sense to change those VM_HIGH_ARCH macros. > -# define VM_PKEY_BIT0 VM_HIGH_ARCH_0 > -# define VM_PKEY_BIT1 VM_HIGH_ARCH_1 > -# define VM_PKEY_BIT2 VM_HIGH_ARCH_2 > +# define VM_PKEY_BIT0 VM_HIGH_ARCH(0) > +# define VM_PKEY_BIT1 VM_HIGH_ARCH(1) > +# define VM_PKEY_BIT2 VM_HIGH_ARCH(2) > #if CONFIG_ARCH_PKEY_BITS > 3 > -# define VM_PKEY_BIT3 VM_HIGH_ARCH_3 > +# define VM_PKEY_BIT3 VM_HIGH_ARCH(3) > #else > # define VM_PKEY_BIT3 0 > #endif > #if CONFIG_ARCH_PKEY_BITS > 4 > -# define VM_PKEY_BIT4 VM_HIGH_ARCH_4 > +# define VM_PKEY_BIT4 VM_HIGH_ARCH(4) > #else > # define VM_PKEY_BIT4 0 > #endif > @@ -349,7 +329,7 @@ extern unsigned int kobjsize(const void *objp); > * (x86). See the comments near alloc_shstk() in arch/x86/kernel/shstk.c > * for more details on the guard size. > */ > -# define VM_SHADOW_STACK VM_HIGH_ARCH_5 > +# define VM_SHADOW_STACK VM_HIGH_ARCH(5) > #endif > > #if defined(CONFIG_ARM64_GCS) > @@ -357,7 +337,7 @@ extern unsigned int kobjsize(const void *objp); > * arm64's Guarded Control Stack implements similar functionality and > * has similar constraints to shadow stacks. > */ > -# define VM_SHADOW_STACK VM_HIGH_ARCH_6 > +# define VM_SHADOW_STACK VM_HIGH_ARCH(6) > #endif > > #ifndef VM_SHADOW_STACK > @@ -381,8 +361,8 @@ extern unsigned int kobjsize(const void *objp); > #endif > > #if defined(CONFIG_ARM64_MTE) > -# define VM_MTE VM_HIGH_ARCH_4 /* Use Tagged memory for = access control */ > -# define VM_MTE_ALLOWED VM_HIGH_ARCH_5 /* Tagged memory permitte= d */ > +# define VM_MTE VM_HIGH_ARCH(4) /* Use Tagged memory for = access control */ > +# define VM_MTE_ALLOWED VM_HIGH_ARCH(5) /* Tagged memory permitte= d */ > #else > # define VM_MTE VM_NONE > # define VM_MTE_ALLOWED VM_NONE > @@ -393,7 +373,7 @@ extern unsigned int kobjsize(const void *objp); > #endif > > #ifdef CONFIG_HAVE_ARCH_USERFAULTFD_MINOR > -# define VM_UFFD_MINOR VM_HIGH_ARCH_9 /* UFFD minor faults */ > +# define VM_UFFD_MINOR VM_HIGH_ARCH(9) /* UFFD minor faults */ > #else /* !CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */ > # define VM_UFFD_MINOR VM_NONE > #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */ > @@ -406,13 +386,13 @@ extern unsigned int kobjsize(const void *objp); > * if KVM does not lock down the memory type. > */ > #ifdef CONFIG_64BIT > -#define VM_ALLOW_ANY_UNCACHED VM_HIGH_ARCH_7 > +#define VM_ALLOW_ANY_UNCACHED VM_HIGH_ARCH(7) > #else > #define VM_ALLOW_ANY_UNCACHED VM_NONE > #endif > > #ifdef CONFIG_64BIT > -#define VM_DROPPABLE VM_HIGH_ARCH_8 > +#define VM_DROPPABLE VM_HIGH_ARCH(8) > #elif defined(CONFIG_PPC32) > #define VM_DROPPABLE VM_ARCH_1 > #else > @@ -421,7 +401,7 @@ extern unsigned int kobjsize(const void *objp); > > #ifdef CONFIG_64BIT > /* VM is sealed, in vm_flags */ > -#define VM_SEALED VM_HIGH_ARCH_10 > +#define VM_SEALED VM_HIGH_ARCH(10) > #endif > > /* Bits set in the VMA until the stack is in its final location */ > -- > 2.49.0.967.g6a0df3ecc3-goog >