From 3c9c26645ddd820084e2da86366a54990c363b54 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 15 Apr 2011 10:07:42 +0100 Subject: nestedhvm: Allocate a separate host ASID for each L2 VCPU. This avoids TLB flushing on every L1/L2 transition. Signed-off-by: Keir Fraser Signed-off-by: Christoph Egger --- xen/include/asm-x86/hvm/vcpu.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'xen/include/asm-x86/hvm/vcpu.h') diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h index eabecaaccc..0282c01c3c 100644 --- a/xen/include/asm-x86/hvm/vcpu.h +++ b/xen/include/asm-x86/hvm/vcpu.h @@ -37,6 +37,11 @@ enum hvm_io_state { HVMIO_completed }; +struct hvm_vcpu_asid { + uint64_t generation; + uint32_t asid; +}; + #define VMCX_EADDR (~0ULL) struct nestedvcpu { @@ -57,6 +62,8 @@ struct nestedvcpu { bool_t nv_flushp2m; /* True, when p2m table must be flushed */ struct p2m_domain *nv_p2m; /* used p2m table for this vcpu */ + struct hvm_vcpu_asid nv_n2asid; + bool_t nv_vmentry_pending; bool_t nv_vmexit_pending; bool_t nv_vmswitch_in_progress; /* true during vmentry/vmexit emulation */ @@ -100,8 +107,7 @@ struct hvm_vcpu { bool_t hcall_preempted; bool_t hcall_64bit; - uint64_t asid_generation; - uint32_t asid; + struct hvm_vcpu_asid n1asid; u32 msr_tsc_aux; -- cgit v1.2.3