diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
commit | eca988de7381e5efe58792dc166611e4523d33b3 (patch) | |
tree | 7cbe42ffc5c067e6bdd193356bb80e81132e13b2 /xen/include/asm-x86/domain.h | |
parent | 5bf494a7bf3674f32ebaab1b70b76e5f174812a3 (diff) | |
download | xen-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.h | 10 |
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 */ |