Add a hook to support CPU migration for VMX domains
PATCH 2/15 Add a hook to support CPU migration for VMX domains
Add a hook to support CPU migration for VMX domains
Signed-off-by Yunhong Jiang <[email protected]>
Signed-off-by Arun Sharma <[email protected]>
xen/arch/x86/domain.c +9 -0
@@ -297,6 +297,15 @@l1e_from_page (virt_to_page (gdt_table),PAGE_HYPERVISOR ); } +void +arch_migrate_cpu (struct vcpu *v,int newcpu) +{ +if (VMX_DOMAIN (v) && (v->processor != newcpu) ){ +u64 vmcs_phys_ptr = (u64 )virt_to_phys (v->arch.arch_vmx.vmcs); +__vmpclear (vmcs_phys_ptr); + } +} +#ifdef CONFIG_VMX static int vmx_switch_on;
xen/common/dom0_ops.c +3 -1
@@ -300,8 +300,10 @@int new_cpu = (int )find_first_set_bit (cpumap) %num_online_cpus ();vcpu_pause (v); -if ( v->processor != new_cpu ) +if ( v->processor != new_cpu ){set_bit (_VCPUF_cpu_migrated, &v->vcpu_flags); +arch_migrate_cpu (v, new_cpu); + }set_bit (_VCPUF_cpu_pinned, &v->vcpu_flags); v->processor = new_cpu;vcpu_unpause (v);
xen/include/xen/domain.h +2 -0
@@ -14,6 +14,8 @@extern void arch_do_boot_vcpu (struct vcpu *v); +void arch_migrate_cpu (struct vcpu *v,int newcpu); +extern int arch_set_info_guest (struct vcpu *d,struct vcpu_guest_context *c);