On Tue, Jun 21, 2016 at 06:09:34PM +0100, Peter Maydell wrote:
> Since the virt board model will never create a CPU which is
> pre-ARMv7, we know that our minimum page size is 4K and can
> set minimum_page_bits accordingly, for improved performance.
>
> Note that this is a migration compatibility break.
>
> Signed-off-by: Peter Maydell <[email protected]>
> ---
> hw/arm/virt.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index c5c125e..f9b51aa 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -1440,6 +1440,8 @@ static void virt_machine_class_init(ObjectClass *oc,
> void *data)
> mc->block_default_type = IF_VIRTIO;
> mc->no_cdrom = 1;
> mc->pci_allow_0_address = true;
> + /* We know we will never create a pre-ARMv7 CPU which needs 1K pages */
> + mc->minimum_page_bits = 12;
> }
As this breaks migration, then I guess we also need
@@ -1507,5 +1510,6 @@ static void virt_machine_2_6_options(MachineClass *mc)
{
virt_machine_2_7_options(mc);
SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_6);
+ mc->minimum_page_bits = 10;
}
DEFINE_VIRT_MACHINE(2, 6)
>
> static const TypeInfo virt_machine_info = {
> --
> 1.9.1
>
>