]> git.proxmox.com Git - mirror_qemu.git/commit
cpu: Support a target CPU having a variable page size
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 24 Oct 2016 15:26:49 +0000 (16:26 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 24 Oct 2016 15:26:49 +0000 (16:26 +0100)
commit20bccb82ff3ea09bcb7c4ee226d3160cab15f7da
treebeb472fa034fe9e742c571f678982235695f29eb
parent66ec9f49399f0a9fa13ee77c472caba0de2773fc
cpu: Support a target CPU having a variable page size

Support target CPUs having a page size which isn't knownn
at compile time. To use this, the CPU implementation should:
 * define TARGET_PAGE_BITS_VARY
 * not define TARGET_PAGE_BITS
 * define TARGET_PAGE_BITS_MIN to the smallest value it
   might possibly want for TARGET_PAGE_BITS
 * call set_preferred_target_page_bits() in its realize
   function to indicate the actual preferred target page
   size for the CPU (and report any error from it)

In CONFIG_USER_ONLY, the CPU implementation should continue
to define TARGET_PAGE_BITS appropriately for the guest
OS page size.

Machines which want to take advantage of having the page
size something larger than TARGET_PAGE_BITS_MIN must
set the MachineClass minimum_page_bits field to a value
which they guarantee will be no greater than the preferred
page size for any CPU they create.

Note that changing the target page size by setting
minimum_page_bits is a migration compatibility break
for that machine.

For debugging purposes, attempts to use TARGET_PAGE_SIZE
before it has been finally confirmed will assert.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
exec.c
include/exec/cpu-all.h
include/hw/boards.h
include/qemu-common.h
vl.c