aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Durrant <paul.durrant@citrix.com>2012-08-22 22:26:27 +0100
committerPaul Durrant <paul.durrant@citrix.com>2012-08-22 22:26:27 +0100
commit8cda3b02882b6c2b398dffdd8533f2135e9cb088 (patch)
treebc175ce4562466ede39a71f503fa288de235355f
parent64b135198b8e61fbc2c5bc58439a0dcfe64c9af8 (diff)
downloadxen-8cda3b02882b6c2b398dffdd8533f2135e9cb088.tar.gz
xen-8cda3b02882b6c2b398dffdd8533f2135e9cb088.tar.bz2
xen-8cda3b02882b6c2b398dffdd8533f2135e9cb088.zip
hvm: Remove VM genearation ID device and incr_generationid from build_info.
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>
-rw-r--r--tools/firmware/hvmloader/acpi/dsdt.asl25
-rw-r--r--tools/libxl/libxl_create.c6
-rw-r--r--tools/libxl/libxl_types.idl1
-rw-r--r--tools/libxl/xl_cmdimpl.c8
-rw-r--r--tools/libxl/xl_sxp.c2
5 files changed, 1 insertions, 41 deletions
diff --git a/tools/firmware/hvmloader/acpi/dsdt.asl b/tools/firmware/hvmloader/acpi/dsdt.asl
index bf44dd63c4..64896ce11d 100644
--- a/tools/firmware/hvmloader/acpi/dsdt.asl
+++ b/tools/firmware/hvmloader/acpi/dsdt.asl
@@ -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)
- }
}
}
}
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index 5f0d26fe33..57a497d11e 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -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:
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index daa8c790ed..c5716a44bd 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -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),
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 138cd72b80..cef89542fa 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -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)
diff --git a/tools/libxl/xl_sxp.c b/tools/libxl/xl_sxp.c
index 91f8f75b2a..31f9a9385f 100644
--- a/tools/libxl/xl_sxp.c
+++ b/tools/libxl/xl_sxp.c
@@ -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");