Re: Page sizes supported by RISC-V

Florian Weimer
2025-01-15T09:02:39Z

* Maciej W. Rozycki:

> On Tue, 14 Jan 2025, Jeff Law wrote:
>
>> >> I understand that not making a call in the specifications avoids the
>> >> need to resolve these conflicts.  But if you don't define a maximum page
>> >> size there, it is effectively specified as 4096 bytes.  This will cause
>> >> problems if distributions targeting large systems want a larger page
>> >> size because it better aligns with the kind of hardware they target.
>> >> It's really bad for cross-distribution binary compatibility, something
>> >> that's important outside the embedded space and probably necessary for
>> >> mainstreaming.
>> >>
>> >> (Of course you know all this. 8-)
>> > Yup.  Once it's baked into one significant distro, it's doing to be
>> > bloody hard to change.  I'm sure we both remember the PPC pagesize stuff
>> > from a few years back ;(
>> >
>> > I strongly suspect the lack of specification here is mean to give
>> > degrees of freedom to the implementors, but sometimes those writing the
>> > specs don't really understand the implication of leaving things like
>> > this unspecified and how much pain it really causes in the end.
>> So resurrecting this discussion.
>>
>> Is there any realistic chance of bumping the minimum pagesize for risc-v
>> at this point? Xu Lu and his team have some compelling data that
>> indicates moving forward to 64k could be highly profitable. That work
>> was done on aarch64, but should be generally applicable to riscv as well.
>
> Can't we simply make a reasonable guess/assumption just for the purpose
> of tooling?

That reasonable default exists today and is 4096. Some effort is
required to change that.

> Based on the experience with MIPS/AArch64 shared here there should be no
> disagreement as to going for at least 64KiB I suppose. Then shall we go
> beyond to leave room for some expansion, such as for 256KiB?

The alternative would be to fix Linux so that it supports multiple page
sizes. Then from an application perspective (and dynamic linker
perspective), the page size could remain at 4096 bytes. I understand
this is difficult because once you have multiple page sizes, there are
concerns regarding fragmentation.

Thanks,
Florian