Re: [PATCH v2] ELF: supply userspace with available page shifts (AT_PAGE_SHIFT_MASK)

Florian Weimer
2023-12-06T21:05:47Z

* Kees Cook:

> On Tue, Dec 05, 2023 at 07:01:34PM +0300, Alexey Dobriyan wrote:
>> Report available page shifts in arch independent manner, so that
>> userspace developers won't have to parse /proc/cpuinfo hunting
>> for arch specific strings:
>>
>> Note!
>>
>> This is strictly for userspace, if some page size is shutdown due
>> to kernel command line option or CPU bug workaround, than is must not
>> be reported in aux vector!
>
> Given Florian in CC, I assume this is something glibc would like to be
> using? Please mention this in the commit log.

Nope, I just wrote a random drive-by comment on the first version.

>> x86_64 machine with 1 GiB pages:
>>
>> 00000030 06 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00
>> 00000040 1d 00 00 00 00 00 00 00 00 10 20 40 00 00 00 00
>>
>> x86_64 machine with 2 MiB pages only:
>>
>> 00000030 06 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00
>> 00000040 1d 00 00 00 00 00 00 00 00 10 20 00 00 00 00 00
>>
>> AT_PAGESZ is always 4096 which is not that interesting.
>
> That's not always true. For example, see arm64:
> arch/arm64/include/asm/elf.h:#define ELF_EXEC_PAGESIZE PAGE_SIZE

I'm pretty sure the comment refers to the x86-64 situation. 8-)

> I'm not actually sure why x86 forces it to 4096. I'd need to go look
> through the history there.

On x86-64, page size 4096 is architectural. Likewise on s390x and a few
other architectures.

Thanks,
Florian