Page sizes supported by RISC-V

Jeff Law jeffreyalaw at gmail.com
Wed Jan 15 06:58:30 PST 2025



On 1/15/25 12:51 AM, Florian Weimer wrote:
> * 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.
Right.  Any change in this value is a rebuild-the-world effort with a 
flag day for binary compatibilty.  Plus there's issues for cross distro 
compatibility and even questions about whether or not any existing 
systems could support anything but 4k pagesizes.



> 
>> 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.
So essentially break the hard tie between the kernel and usercode and 
allow them to vary independently...  Hmm....

jeff



More information about the linux-riscv mailing list