2021-12-23 13:15:06

by Sergey Organov

[permalink] [raw]
Subject: Selecting MMU page size for an architecture

Hello,

We are building custom CPU and have an option to choose either 4K or 16K
MMU minimum page size that will then be fixed in the hardware. For
reasons unrelated to the Linux kernel we'd prefer 16K, but I have some
doubts.

What pros and cons for kernel and user-space operation 16K pages will
have over more usual 4K pages? Anything we should worry about?

Thanks,
-- Sergey Organov



2022-01-24 15:33:09

by Jon Masters

[permalink] [raw]
Subject: Re: Selecting MMU page size for an architecture

Hey Sergey,

On Thu, Dec 23, 2021 at 8:15 AM Sergey Organov <[email protected]> wrote:

> We are building custom CPU and have an option to choose either 4K or 16K
> MMU minimum page size that will then be fixed in the hardware. For
> reasons unrelated to the Linux kernel we'd prefer 16K, but I have some
> doubts.
>
> What pros and cons for kernel and user-space operation 16K pages will
> have over more usual 4K pages? Anything we should worry about?

If you want maximum compatibility with existing source written for
industry at large (e.g. x86/Arm) and even the assumptions in other
devices (and their firmware) you might connect (PCI, or even on-SoC)
then you'll want to go with 4K. However, if I were designing a brand
new architecture today and didn't care about legacy, I would
definitely consider following Apple into 16K.

Jon.

--
Computer Architect

2022-01-24 19:19:06

by Sergey Organov

[permalink] [raw]
Subject: Re: Selecting MMU page size for an architecture

Hi Jon,

Jon Masters <[email protected]> writes:

> Hey Sergey,
>
> On Thu, Dec 23, 2021 at 8:15 AM Sergey Organov <[email protected]> wrote:
>
>> We are building custom CPU and have an option to choose either 4K or 16K
>> MMU minimum page size that will then be fixed in the hardware. For
>> reasons unrelated to the Linux kernel we'd prefer 16K, but I have some
>> doubts.
>>
>> What pros and cons for kernel and user-space operation 16K pages will
>> have over more usual 4K pages? Anything we should worry about?
>
> If you want maximum compatibility with existing source written for
> industry at large (e.g. x86/Arm) and even the assumptions in other
> devices (and their firmware) you might connect (PCI, or even on-SoC)
> then you'll want to go with 4K. However, if I were designing a brand
> new architecture today and didn't care about legacy, I would
> definitely consider following Apple into 16K.

I don't think we will have issues with device drivers because of this,
but even if so, I believe we'll be able to fix that, so I get your
advice as +1 in favor of 16K pages.

Thanks for sharing!

-- Sergey Organov