]> Git Repo - qemu.git/commitdiff
pc_piix: document gigabyte_align
authorMichael S. Tsirkin <[email protected]>
Mon, 16 Dec 2013 11:54:19 +0000 (13:54 +0200)
committerMichael S. Tsirkin <[email protected]>
Mon, 23 Dec 2013 11:12:34 +0000 (13:12 +0200)
Document the logic behind the below/above 4G split.

Signed-off-by: Michael S. Tsirkin <[email protected]>
hw/i386/pc_piix.c

index acb9445362703aebb622392c041af760d78e98d6..832e20c22681a5abd71ebaee478631cf47c67ece 100644 (file)
@@ -61,6 +61,10 @@ static const int ide_irq[MAX_IDE_BUS] = { 14, 15 };
 static bool has_pci_info;
 static bool has_acpi_build = true;
 static bool smbios_type1_defaults = true;
+/* Make sure that guest addresses aligned at 1Gbyte boundaries get mapped to
+ * host addresses aligned at 1Gbyte boundaries.  This way we can use 1GByte
+ * pages in the host.
+ */
 static bool gigabyte_align = true;
 
 /* PC hardware initialisation */
@@ -107,6 +111,13 @@ static void pc_init1(QEMUMachineInitArgs *args,
         kvmclock_create();
     }
 
+    /* Check whether RAM fits below 4G (leaving 1/2 GByte for IO memory).
+     * If it doesn't, we need to split it in chunks below and above 4G.
+     * In any case, try to make sure that guest addresses aligned at
+     * 1G boundaries get mapped to host addresses aligned at 1G boundaries.
+     * For old machine types, use whatever split we used historically to avoid
+     * breaking migration.
+     */
     if (args->ram_size >= 0xe0000000) {
         ram_addr_t lowmem = gigabyte_align ? 0xc0000000 : 0xe0000000;
         above_4g_mem_size = args->ram_size - lowmem;
This page took 0.032623 seconds and 4 git commands to generate.