Thread (6 messages) flat view 6 messages, 2 authors, 2024-02-13

Re: [PATCH v4] ELF: AT_PAGE_SHIFT_MASK -- supply userspace with available page shifts

From: Kees Cook <hidden>
Date: 2024-02-13 19:39:32
Also in: linux-arch, linux-mm, lkml

On Tue, Feb 13, 2024 at 09:51:01PM +0300, Alexey Dobriyan wrote:
On Fri, Feb 09, 2024 at 04:41:36PM -0800, Kees Cook wrote:
quoted
On Fri, Feb 09, 2024 at 03:30:37PM +0300, Alexey Dobriyan wrote:
quoted
On Mon, Feb 05, 2024 at 04:48:08AM -0800, Kees Cook wrote:
quoted
On Mon, Feb 05, 2024 at 12:51:43PM +0300, Alexey Dobriyan wrote:
quoted
+#define ARCH_AT_PAGE_SHIFT_MASK					\
+	do {							\
+		u32 val = 1 << 12;				\
+		if (boot_cpu_has(X86_FEATURE_PSE)) {		\
+			val |= 1 << 21;				\
+		}						\
+		if (boot_cpu_has(X86_FEATURE_GBPAGES)) {	\
+			val |= 1 << 30;				\
+		}						\
Can we use something besides literal "12", "21", and "30" values here?
Ehh, no, why? Inside x86_64 the page shifts are very specific numbers,
they won't change.
Well, it's nicer to have meaningful words to describe these things.
Not really. Inside specific arch page shifts are fixed, so using names
is just more macros one need to remember.

If I were to invent names (which I wouldn't), the best names are

	PAGE_SHIFT
	PAGE_SHIFT2
	PAGE_SHIFT3
	...

with PAGE_SHIFT2, PAGE_SHIFT3 being optional macros if arch doesn't support
multiple page sizes.
quoted
In fact, PAGE_SHIFT already exists for 12, and HPAGE_SHIFT already exists
for 21. Please use those, and add another, perhaps GBPAGE_SHIFT, for 30.
HPAGE_SHIFT is bad name, H doesn't describe anything unless arch is
known. Hugepages is marketing name. If GBPAGE_SHIFT is good name,
then HPAGE_SHIFT is bad name, it should've been MBPAGE_SHIFT, which
wrong because it is 2 MiB not 1 MiB.

BTW parisc has REAL_HPAGE_SHIFT !
Sure, I mean, we've got an x86-specific function here, so let's use the
x86-specific macros we already have for 12 and 21, and then add the
missing one for 30.

-- 
Kees Cook
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help