Re: [PATCH v6 2/9] x86/resctrl: Require 64-bit x86 for resctrl support
From: Reinette Chatre
Date: Thu Aug 20 2026 - 11:55:19 EST
Hi Tony,
On 8/20/26 8:20 AM, Luck, Tony wrote:
>> Reviewed at:
>> https://lore.kernel.org/lkml/d97deaa1-f42c-4fce-8ca8-5ccf8d822cd2@xxxxxxxxx/
>
> Reinette,
>
> I've written up this draft for next series. Are you looking for something like this?
>
> x86/resctrl: Require 64-bit x86 for resctrl support
>
> All known hardware that supports Intel RDT or AMD QoS is 64-bit.
>
> On x86 the maximum supported memory size on a 32-bit kernel is 64GB (when
> PAE is enabled). Linux imposes additional constraints since each 4KByte
> page requires a 64-byte "struct page" which must reside in the always-mapped
> 3-4GByte range of the 32-bit kernel virtual address space. This means the
> maximum supported memory size is slightly above 32GB, but at that memory
> size there are considerable inefficiencies as over half of kernel virtual
> memory is dedicated to the page structures.
>
> The earliest server processor to support resctrl was Intel Haswell, released in
> 2014. It supported four memory channels, and production systems were advised
> to populate all channels to provide sufficient memory bandwidth to keep the
> cores busy. Best value DIMMs in 2014 were 16GB. So even a single socket Haswell
> system would have more memory than could be addressed by a 32-bit kernel.
I assume above aims to justify the "no realistic use case for users to build a 32-bit
kernel on a server and enable resctrl"?
To be specific, my comment about RDT not being a "server" feature was made with Apollo
Lake [1] in mind. That system showed up in scenarios where servers do not typically venture
and per [1] its max memory size (8GB) is significantly less than what servers can support.
Apart from that it was the "no realistic use case" that tripped me. At best I think we
can say that we are not aware of 32-bit use cases?
> Drop 32-bit support by changing the X86_CPU_RESCTRL dependency from X86
> to X86_64.
>
> Since X86_CPU_RESCTRL now implies X86_64, remove the redundant X86_64
> dependency from X86_CPU_RESCTRL_INTEL_AET.
>
Reinette
[1] https://www.intel.com/content/www/us/en/products/sku/95594/intel-celeron-processor-j3455-2m-cache-up-to-2-30-ghz/specifications.html