Message ID | 20240102015808.132373-33-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | linux-user: Improve host and guest page size handling | expand |
On Tue, Jan 02, 2024 at 12:58:07PM +1100, Richard Henderson wrote: > Since ppc binaries are generally built for multiple > page sizes, it is trivial to allow the page size to vary. > > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/ppc/cpu-param.h | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) It would be great if it were possible to choose the page size from the command line for linux-user. I was recently looking into comparing traces from ppc64le-linux-user and real hardware, and mismatching page size was one of the things getting in the way. Of course, --- a/target/ppc/cpu-param.h +++ b/target/ppc/cpu-param.h @@ -31,6 +31,10 @@ # define TARGET_PHYS_ADDR_SPACE_BITS 36 # define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif +#if defined(TARGET_PPC64) && defined(__linux__) && defined(CONFIG_USER_ONLY) +#define TARGET_PAGE_BITS 16 +#else #define TARGET_PAGE_BITS 12 +#endif worked, but an official support for this would be even better. Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h index 0a0416e0a8..b7ad52de03 100644 --- a/target/ppc/cpu-param.h +++ b/target/ppc/cpu-param.h @@ -31,6 +31,13 @@ # define TARGET_PHYS_ADDR_SPACE_BITS 36 # define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif -#define TARGET_PAGE_BITS 12 + +#ifdef CONFIG_USER_ONLY +/* Allow user-only to vary page size from 4k */ +# define TARGET_PAGE_BITS_VARY +# define TARGET_PAGE_BITS_MIN 12 +#else +# define TARGET_PAGE_BITS 12 +#endif #endif