On December 4, 2024 5:43:28 AM PST, Arnd Bergmann <arnd@xxxxxxxx> wrote: >On Wed, Dec 4, 2024, at 14:29, Brian Gerst wrote: >> On Wed, Dec 4, 2024 at 5:34 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: >>> >>> - In the early days of x86-64 hardware, there was sometimes the need >>> to run a 32-bit kernel to work around bugs in the hardware drivers, >>> or in the syscall emulation for 32-bit userspace. This likely still >>> works but there should never be a need for this any more. >>> >>> Removing this also drops the need for PHYS_ADDR_T_64BIT and SWIOTLB. >>> PAE mode is still required to get access to the 'NX' bit on Atom >>> 'Pentium M' and 'Core Duo' CPUs. >> >> 8GB of memory is still useful for 32-bit guest VMs. > >Can you give some more background on this? > >It's clear that one can run a virtual machine this way and it >currently works, but are you able to construct a case where this >is a good idea, compared to running the same userspace with a >64-bit kernel? > >From what I can tell, any practical workload that requires >8GB of total RAM will likely run into either the lowmem >limits or into virtual addressig limits, in addition to the >problems of 32-bit kernels being generally worse than 64-bit >ones in terms of performance, features and testing. > > Arnd > The biggest proven is that without HIGHMEM you put a limit of just under 1 GB (892 MiB if I recall correctly), *not* 4 GB, on 32-bit kernels. That is *well* below the amount of RAM present in late-era 32-bit legacy systems, which were put in production as "recently" as 20 years ago and may still be in niche production uses. Embedded systems may be significantly more recent; I know for a fact that 32-bit systems were put in production in the 2010s.