[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 00 of 13] Sharing overhaul V4
Changes from sharing overhaul v3 posted Jan 16th - Patches 1,2: Improved description in header - Patch 1: + Changed mem_sharing audit from int to void + Fixed format of audit debugtrace printk's Patch 2: added comment to code explaining grant sharing raison-d'etre Patches 4 (mainly), but 6 and 8 as well: + Using a per-cpu static struct instead of stack var for lock order and deadlock detection book-keeping. Patches 7, 9, 11: Added Acked-by's (all the major tools patches acked-by tools maintainers now) Patch 8: + Fixed off-by-one audit type accounting caused by PGT_locked bumping the page type count New patch 13: rename shared_info to sharing so that grep/cscope/etc don't alias it with the unrelated shared info page. Regular description follows... -------------------- This patch series brings about a set of changes to the sharing support in the hypervisor and tools. Specifically: - Granular scalable locking: lock mfn's individually when sharing/unsharing them. Do not rely on a global lock. Use RCU to maintain a list of all shared frames for audit purposes. - Refreshed stats: they now work (tm), and are accesible via libxc and console. - libxl/xl support to get sharing stats. - New sharing command "add to physmap", to directly populate a new domain with shared frames. - Toolstack and memshr kept in sync. A consequence of our modifications is a change to the sharing API. While we refresh the only user of the sharing API in the tree, we want to make sure we are not affecting any other users of the sharing API. Patches 9, 10 11 are tools patches. Patches 1 to 8 are x86/mm. Patch 12 is a simple testing tool. Patch 13 is a style fix, no functional changes. Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx> Signed-off-by: Adin Scannell <adin@xxxxxxxxxxx> xen/arch/x86/mm/mem_sharing.c | 539 +++++++++++++++++----------------- xen/include/asm-x86/mem_sharing.h | 19 +- xen/include/asm-x86/mm.h | 11 +- xen/include/public/domctl.h | 3 + xen/arch/x86/mm/mem_sharing.c | 57 +++- xen/include/public/domctl.h | 13 + xen/arch/x86/mm.c | 74 +---- xen/arch/x86/mm/mem_sharing.c | 257 +++++++++++++++- xen/arch/x86/mm/mm-locks.h | 15 +- xen/include/asm-x86/mm.h | 27 +- xen/arch/x86/mm/mem_sharing.c | 16 + xen/arch/x86/mm/mm-locks.h | 18 +- xen/include/asm-x86/mm.h | 3 +- xen/arch/x86/mm.c | 6 - xen/arch/x86/mm/mem_sharing.c | 25 + xen/arch/x86/x86_64/compat/mm.c | 6 + xen/arch/x86/x86_64/mm.c | 7 + xen/include/asm-x86/mem_sharing.h | 1 + xen/include/public/memory.h | 1 + xen/arch/x86/mm/mem_sharing.c | 103 ++++++ xen/include/public/domctl.h | 3 +- xen/arch/ia64/xen/mm.c | 5 + xen/arch/x86/mm.c | 14 + xen/common/keyhandler.c | 7 +- xen/include/xen/mm.h | 3 + xen/arch/x86/mm/mem_sharing.c | 93 ++--- xen/arch/x86/mm/mm-locks.h | 18 - xen/include/asm-x86/mem_sharing.h | 3 +- tools/blktap2/drivers/tapdisk-vbd.c | 6 +- tools/blktap2/drivers/tapdisk.h | 2 +- tools/libxc/xc_memshr.c | 63 +++- tools/libxc/xenctrl.h | 19 +- tools/memshr/bidir-daemon.c | 34 +- tools/memshr/bidir-hash.h | 12 +- tools/memshr/interface.c | 30 +- tools/memshr/memshr.h | 11 +- tools/libxc/xc_memshr.c | 10 + tools/libxc/xenctrl.h | 17 + docs/man/xl.pod.1 | 13 + tools/libxl/libxl.c | 2 + tools/libxl/libxl_types.idl | 2 + tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 66 ++++ tools/libxl/xl_cmdtable.c | 5 + tools/tests/mem-sharing/Makefile | 26 + tools/tests/mem-sharing/memshrtool.c | 165 ++++++++++ xen/arch/x86/mm/mem_sharing.c | 64 ++-- xen/include/asm-x86/mm.h | 2 +- 48 files changed, 1360 insertions(+), 537 deletions(-) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |