aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/hvm/vcpu.h
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-04-15 10:07:42 +0100
committerKeir Fraser <keir@xen.org>2011-04-15 10:07:42 +0100
commit3c9c26645ddd820084e2da86366a54990c363b54 (patch)
tree5b1353a72ecafe588ef7a92a3935180df4f1fc12 /xen/include/asm-x86/hvm/vcpu.h
parent8d24303023ec82d94f97154785302d52e9917f91 (diff)
downloadxen-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.h10
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;