aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/domain.h
diff options
context:
space:
mode:
authorTim Deegan <Tim.Deegan@citrix.com>2011-06-02 13:16:52 +0100
committerTim Deegan <Tim.Deegan@citrix.com>2011-06-02 13:16:52 +0100
commiteca988de7381e5efe58792dc166611e4523d33b3 (patch)
tree7cbe42ffc5c067e6bdd193356bb80e81132e13b2 /xen/include/asm-x86/domain.h
parent5bf494a7bf3674f32ebaab1b70b76e5f174812a3 (diff)
downloadxen-eca988de7381e5efe58792dc166611e4523d33b3.tar.gz
xen-eca988de7381e5efe58792dc166611e4523d33b3.tar.bz2
xen-eca988de7381e5efe58792dc166611e4523d33b3.zip
x86/mm: merge the shadow, hap and log-dirty locks into a single paging lock.
This will allow us to simplify the locking around calls between hap/shadow and log-dirty code. Many log-dirty paths already need the shadow or HAP lock so it shouldn't increase contention that much. Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/domain.h')
-rw-r--r--xen/include/asm-x86/domain.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h
index 2879480b0b..47edad0d18 100644
--- a/xen/include/asm-x86/domain.h
+++ b/xen/include/asm-x86/domain.h
@@ -91,8 +91,6 @@ void hypercall_page_initialise(struct domain *d, void *);
/* shadow paging extension */
/************************************************/
struct shadow_domain {
- mm_lock_t lock; /* shadow domain lock */
-
unsigned int opt_flags; /* runtime tunable optimizations on/off */
struct page_list_head pinned_shadows;
@@ -158,8 +156,6 @@ struct shadow_vcpu {
/* hardware assisted paging */
/************************************************/
struct hap_domain {
- mm_lock_t lock;
-
struct page_list_head freelist;
unsigned int total_pages; /* number of pages allocated */
unsigned int free_pages; /* number of pages on freelists */
@@ -170,9 +166,6 @@ struct hap_domain {
/* common paging data structure */
/************************************************/
struct log_dirty_domain {
- /* log-dirty lock */
- mm_lock_t lock;
-
/* log-dirty radix tree to record dirty pages */
mfn_t top;
unsigned int allocs;
@@ -189,6 +182,9 @@ struct log_dirty_domain {
};
struct paging_domain {
+ /* paging lock */
+ mm_lock_t lock;
+
/* flags to control paging operation */
u32 mode;
/* extension for shadow paging support */