diff options
author | Keir Fraser <keir@xen.org> | 2011-04-15 10:07:42 +0100 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2011-04-15 10:07:42 +0100 |
commit | 3c9c26645ddd820084e2da86366a54990c363b54 (patch) | |
tree | 5b1353a72ecafe588ef7a92a3935180df4f1fc12 /xen/include/asm-x86/hvm/vcpu.h | |
parent | 8d24303023ec82d94f97154785302d52e9917f91 (diff) | |
download | xen-3c9c26645ddd820084e2da86366a54990c363b54.tar.gz xen-3c9c26645ddd820084e2da86366a54990c363b54.tar.bz2 xen-3c9c26645ddd820084e2da86366a54990c363b54.zip |
nestedhvm: Allocate a separate host ASID for each L2 VCPU.
This avoids TLB flushing on every L1/L2 transition.
Signed-off-by: Keir Fraser <keir@xen.org>
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Diffstat (limited to 'xen/include/asm-x86/hvm/vcpu.h')
-rw-r--r-- | xen/include/asm-x86/hvm/vcpu.h | 10 |
1 files changed, 8 insertions, 2 deletions
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; |