aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/mm.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-12-17 06:27:56 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-12-17 06:27:56 +0000
commitcf5e23f6c44689bcf1996cf890b1c61c6fdb89d0 (patch)
tree3adab80d2ce2331909586e3819de29f742851d29 /xen/include/asm-x86/mm.h
parent3e3ccc354377859506ad948df84572813204c99c (diff)
downloadxen-cf5e23f6c44689bcf1996cf890b1c61c6fdb89d0.tar.gz
xen-cf5e23f6c44689bcf1996cf890b1c61c6fdb89d0.tar.bz2
xen-cf5e23f6c44689bcf1996cf890b1c61c6fdb89d0.zip
This patch establishes a new abstraction of sharing handles (encoded as a 64bit
int), each corresponding to a single sharable pages. Externally all sharing related operations (e.g. nominate/share) will use sharing handles, thus solving a lot of consistency problems (like: is this sharable page still the same sharable page as before). Internally, sharing handles can be translated to the MFNs (using a newly created hashtable), and then for each MFNs a doubly linked list of GFNs translating to this MFN is maintained. Finally, sharing handle is stored in page_info strucutre for each sharable MFN. All this allows to share and unshare pages efficiently. However, at the moment a single lock is used to protect the sharing handle hash table. For scalability reasons, the locking needs to be made more granular. Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/mm.h')
-rw-r--r--xen/include/asm-x86/mm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index 5c3ab88c3a..5f8aeb5d00 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -43,6 +43,8 @@ struct page_info
struct page_list_entry list;
/* For non-pinnable shadows, a higher entry that points at us. */
paddr_t up;
+ /* For shared/sharable pages the sharing handle */
+ uint64_t shr_handle;
};
/* Reference count and various PGC_xxx flags and fields. */