diff options
author | Liu, Jinsong <jinsong.liu@intel.com> | 2012-09-26 12:05:55 +0200 |
---|---|---|
committer | Liu, Jinsong <jinsong.liu@intel.com> | 2012-09-26 12:05:55 +0200 |
commit | 19b03acdd1cdb8a6c35a30079ae6d6fb72caa285 (patch) | |
tree | 734c7cb2e579c64fae4183bb4201eb9d98f01e2b /xen/include/public/domctl.h | |
parent | 513e591c04d9d4f9ffe9ec282daaba798c30c176 (diff) | |
download | xen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.tar.gz xen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.tar.bz2 xen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.zip |
x86: vMCE save and restore
This patch provides vMCE save/restore when migration.
1. MCG_CAP is well-defined. However, considering future cap extension,
we keep save/restore logic that Jan implement at c/s 24887;
2. MCi_CTL2 initialized by guestos when booting, so need save/restore
otherwise guest would surprise;
3. Other MSRs do not need save/restore since they are either error-
related and pointless to save/restore, or, unified among all vMCE
platform;
Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
- fix handling of partial data in XEN_DOMCTL_set_ext_vcpucontext
- fix adjustment of xen_domctl_ext_vcpucontext
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
Diffstat (limited to 'xen/include/public/domctl.h')
-rw-r--r-- | xen/include/public/domctl.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index f367ce2b2c..a5836470ea 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -32,6 +32,7 @@ #error "domctl operations are intended for use by node control tools only" #endif +#include <xen/hvm/save.h> #include "xen.h" #include "grant_table.h" @@ -564,7 +565,14 @@ struct xen_domctl_ext_vcpucontext { uint16_t sysenter_callback_cs; uint8_t syscall32_disables_events; uint8_t sysenter_disables_events; - uint64_aligned_t mcg_cap; +#if defined(__GNUC__) + union { + uint64_aligned_t mcg_cap; + struct hvm_vmce_vcpu vmce; + }; +#else + struct hvm_vmce_vcpu vmce; +#endif #endif }; typedef struct xen_domctl_ext_vcpucontext xen_domctl_ext_vcpucontext_t; |