On Wed, Oct 23, 2024, at 19:47, Alex Bennée wrote: >> On Sun, Oct 20, 2024, at 17:39, Naresh Kamboju wrote: >> On non-LPAE arm32, this broke the existing behavior for >> large 32-bit memory sizes. The obvious fix is to change >> back the PAGE_MASK definition for 32-bit arm to a signed >> number. > > Agreed. However I think we were masking a calling issue that: > > /* Actual RAM size depends on initial RAM and device memory settings */ > [VIRT_MEM] = { GiB, LEGACY_RAMLIMIT_BYTES }, > > And: > > -m 4G > > make no sense with no ARM_LPAE (which the kernel didn't have) but if you > pass -machine virt,gic-version=3,highmem=off (the default changed awhile > back) you will get a warning: > > qemu-system-arm: Addressing limited to 32 bits, but memory exceeds it > by 1073741824 bytes > > but I guess that didn't trigger for some reason before this patch?
I did not look at the full log, but I don't think there is a problem between kernel and qemu, this is just a kernel regression that can happen on any real or virtual platform with a lot of memory. I would guess that "highmem=off" was not even set here, so there was probably no warning, and you would still see the same kernel bug with qemu-system-aarch64 and its larger limit for highmem=off. Arnd