]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
hvm: Remove VM genearation ID device and incr_generationid from build_info.
authorPaul Durrant <paul.durrant@citrix.com>
Wed, 22 Aug 2012 21:26:27 +0000 (22:26 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Wed, 22 Aug 2012 21:26:27 +0000 (22:26 +0100)
Microsoft have now published their VM generation ID specification at
https://www.microsoft.com/en-us/download/details.aspx?id=30707.
It differs from the original specification upon which I based my
implementation in several key areas. Particularly, it is no longer
an incrementing 64-bit counter and so this patch is to remove
the incr_generationid field from the build_info and also disable the
ACPI device before 4.2 is released.

I will follow up with further patches to implement the VM generation
ID to the new specification.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
tools/firmware/hvmloader/acpi/dsdt.asl
tools/libxl/libxl_create.c
tools/libxl/libxl_types.idl
tools/libxl/xl_cmdimpl.c
tools/libxl/xl_sxp.c

index bf44dd63c42152424130952919cae1cee73fa108..64896ce11db357f53c2f0a955fae7f2b90dc741d 100644 (file)
@@ -396,31 +396,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
                         IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
                         IRQNoFlags () {7}
                     })
-                } 
-
-                Device(VGID) {
-                    Name(_HID, EisaID ("XEN0000"))
-                    Name(_UID, 0x00)
-                    Name(_CID, "VM_Gen_Counter")
-                    Name(_DDN, "VM_Gen_Counter")
-                    Method(_STA, 0, NotSerialized)
-                    {
-                        If(LEqual(\_SB.VGIA, 0x00000000)) {
-                            Return(0x00)
-                        } Else {
-                            Return(0x0F)
-                        }
-                    }
-                    Name(PKG, Package ()
-                    {
-                        0x00000000,
-                        0x00000000
-                    })
-                    Method(ADDR, 0, NotSerialized)
-                    {
-                        Store(\_SB.VGIA, Index(PKG, 0))
-                        Return(PKG)
-                    }
                 }
             }
         }
index 5f0d26fe33fedc5bfbada16dddb2187f74ef83e1..57a497d11e7b3606eca635ca76218bf0ca345ab6 100644 (file)
@@ -248,7 +248,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_setdefault(&b_info->u.hvm.hpet,               true);
         libxl_defbool_setdefault(&b_info->u.hvm.vpt_align,          true);
         libxl_defbool_setdefault(&b_info->u.hvm.nested_hvm,         false);
-        libxl_defbool_setdefault(&b_info->u.hvm.incr_generationid,  false);
         libxl_defbool_setdefault(&b_info->u.hvm.usb,                false);
         libxl_defbool_setdefault(&b_info->u.hvm.xen_platform_pci,   true);
 
@@ -758,27 +757,24 @@ static void domcreate_bootloader_done(libxl__egc *egc,
 
     /* read signature */
     int hvm, pae, superpages;
-    int no_incr_generationid;
     switch (info->type) {
     case LIBXL_DOMAIN_TYPE_HVM:
         hvm = 1;
         superpages = 1;
         pae = libxl_defbool_val(info->u.hvm.pae);
-        no_incr_generationid = !libxl_defbool_val(info->u.hvm.incr_generationid);
         callbacks->toolstack_restore = libxl__toolstack_restore;
         break;
     case LIBXL_DOMAIN_TYPE_PV:
         hvm = 0;
         superpages = 0;
         pae = 1;
-        no_incr_generationid = 0;
         break;
     default:
         rc = ERROR_INVAL;
         goto out;
     }
     libxl__xc_domain_restore(egc, dcs,
-                             hvm, pae, superpages, no_incr_generationid);
+                             hvm, pae, superpages, 1);
     return;
 
  out:
index daa8c790ed527d61cdd6aa2fc6e5d104f4307650..c5716a44bd08c62ff940ec8338d8c116c1e57017 100644 (file)
@@ -292,7 +292,6 @@ libxl_domain_build_info = Struct("domain_build_info",[
                                        ("vpt_align",        libxl_defbool),
                                        ("timer_mode",       libxl_timer_mode),
                                        ("nested_hvm",       libxl_defbool),
-                                       ("incr_generationid",libxl_defbool),
                                        ("nographic",        libxl_defbool),
                                        ("vga",              libxl_vga_interface_info),
                                        ("vnc",              libxl_vnc_info),
index 138cd72b80fe0a1a4d925c7448129544596ef746..cef89542fa95bf622fa0e88b1c8451fe90fccd4e 100644 (file)
@@ -139,7 +139,6 @@ struct domain_create {
     const char *restore_file;
     int migrate_fd; /* -1 means none */
     char **migration_domname_r; /* from malloc */
-    int incr_generationid;
 };
 
 
@@ -1759,10 +1758,6 @@ static int create_domain(struct domain_create *dom_info)
         }
     }
 
-    if (d_config.c_info.type == LIBXL_DOMAIN_TYPE_HVM)
-        libxl_defbool_set(&d_config.b_info.u.hvm.incr_generationid,
-                          dom_info->incr_generationid);
-
     if (debug || dom_info->dryrun)
         printf_info(default_output_format, -1, &d_config);
 
@@ -3183,7 +3178,6 @@ static void migrate_receive(int debug, int daemonize, int monitor,
     dom_info.paused = 1;
     dom_info.migrate_fd = recv_fd;
     dom_info.migration_domname_r = &migration_domname;
-    dom_info.incr_generationid = 0;
 
     rc = create_domain(&dom_info);
     if (rc < 0) {
@@ -3364,7 +3358,6 @@ int main_restore(int argc, char **argv)
     dom_info.vnc = vnc;
     dom_info.vncautopass = vncautopass;
     dom_info.console_autoconnect = console_autoconnect;
-    dom_info.incr_generationid = 1;
 
     rc = create_domain(&dom_info);
     if (rc < 0)
@@ -3766,7 +3759,6 @@ int main_create(int argc, char **argv)
     dom_info.vnc = vnc;
     dom_info.vncautopass = vncautopass;
     dom_info.console_autoconnect = console_autoconnect;
-    dom_info.incr_generationid = 0;
 
     rc = create_domain(&dom_info);
     if (rc < 0)
index 91f8f75b2ae3f4b71107ad6a91364c0f2d23eb41..31f9a9385fe4ae5d25ef770b4a57e3c20259d820 100644 (file)
@@ -108,8 +108,6 @@ void printf_info_sexp(int domid, libxl_domain_config *d_config)
                libxl_timer_mode_to_string(b_info->u.hvm.timer_mode));
         printf("\t\t\t(nestedhvm %s)\n",
                libxl_defbool_to_string(b_info->u.hvm.nested_hvm));
-        printf("\t\t\t(no_incr_generationid %s)\n",
-               libxl_defbool_to_string(b_info->u.hvm.incr_generationid));
         printf("\t\t\t(stdvga %s)\n", b_info->u.hvm.vga.kind ==
                                       LIBXL_VGA_INTERFACE_TYPE_STD ?
                                       "True" : "False");