|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [PATCH 4/8] HVM save restore: vcpu context support
Zhai, Edwin wrote:
[PATCH 4/8] HVM save restore: vcpu context support
Signed-off-by: Zhai Edwin <edwin.zhai@xxxxxxxxx>
typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */
+
+/*
+ * World vmcs state
+ */
+struct vmcs_data {
+ uint64_t eip; /* execution pointer */
+ uint64_t esp; /* stack pointer */
+ uint64_t eflags; /* flags register */
+ uint64_t cr0;
+ uint64_t cr3; /* page table directory */
+ uint64_t cr4;
+ uint32_t idtr_limit; /* idt */
+ uint64_t idtr_base;
If I read the code correctly, vmcs_data ends up becoming part of:
+
+#define HVM_CTXT_SIZE 6144
+typedef struct hvm_domain_context {
+ uint32_t cur;
+ uint32_t size;
+ uint8_t data[HVM_CTXT_SIZE];
+} hvm_domain_context_t;
+DEFINE_XEN_GUEST_HANDLE(hvm_domain_context_t);
Which then gets saved to disk. My first concern would be that struct
vmcs_data is not padding safe. How idtr_limit gets padding may change
in future versions of GCC which would break the save format.
The second is how HVM_CTXT_SIZE gets defined. Not sure there's a great
way to address though (although the first issue is definitely fixable).
Regards,
Anthony Liguori
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|