[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 00 of 12] Sharing overhaul
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. - Basic libxl/xl support for sharing. - 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. These hypervisor bits apply on top of patch "x86/mm: Improve ring management for memory events. Do not lose guest events" currently traversing the chain of reviewing. Patch 12 is a simple testing tool for showcasing new functionality and facilitating testing. Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx> Signed-off-by: Adin Scannell <adin@xxxxxxxxxxx> xen/arch/x86/mm/mem_sharing.c | 550 +++++++++++++++++----------------- 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 | 9 + 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 | 91 +++-- 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 | 24 + 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 | 104 ++++++ 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 | 94 ++--- 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 ++++++++++ 46 files changed, 1371 insertions(+), 543 deletions(-) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |