On 08/04/2014 06:32 AM, Peter Maydell wrote: > On 4 August 2014 11:23, Alex Bennée <alex.ben...@linaro.org> wrote: >> Peter Maydell writes: >>> So: >>> * there's clearly a big perf win to be had here >>> * this patchset gives us that for 4K pages on AArch64 >>> * but it doesn't help for 4K pages on AArch32 (really >>> common) >> >> Well for the AArch32 profile if you ran under qemu-system-aarch64 you >> would be OK surely? > > Yes, but that's pretty non-obvious, and also it doesn't > make much sense to the user to say "these 32 bit > CPUs should be run under qemu-system-aarch64 but > these other ones should be under qemu-system-arm". > >>> * and it's not going to be good for 64K pages on AArch64 >>> either (which I suspect will not be a rare choice) >> >> Does the kernel already use 64k pages for it's code? > > There's a config option, which will cause it to use 64K > pages for everything including userspace. > (There's also 16K pages but I forget if Linux has support > for those.) I think the kernel can also use 64K pages in > some cases even in a 4K page config, but I don't know the > details.
Linux support for the 16K granule has not been merged nor have I seen any patches for it. With a 4K granule one can early out to 1GiB blocks ("gigabyte kernel logical mappings") [1] or 2MiB blocks ("huge pages") [2]. With a 64K granule, one can early out to 512MiB blocks ("huge pages") [2]. 1. http://permalink.gmane.org/gmane.linux.ports.arm.kernel/322436 2. http://comments.gmane.org/gmane.linux.kernel.mm/100651 Regards, Christopher -- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation.