xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00 of 12] Sharing overhaul
@ 2012-01-16  2:56 Andres Lagar-Cavilla
  2012-01-16  2:56 ` [PATCH 01 of 12] x86/mm: Eliminate hash table in sharing code as index of shared mfns Andres Lagar-Cavilla
                   ` (11 more replies)
  0 siblings, 12 replies; 29+ messages in thread
From: Andres Lagar-Cavilla @ 2012-01-16  2:56 UTC (permalink / raw)
  To: xen-devel
  Cc: ian.campbell, andres, tim, keir.xen, JBeulich, ian.jackson, adin

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@lagarcavilla.org>
Signed-off-by: Adin Scannell <adin@scannell.ca>

 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(-)

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2012-01-23 15:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-16  2:56 [PATCH 00 of 12] Sharing overhaul Andres Lagar-Cavilla
2012-01-16  2:56 ` [PATCH 01 of 12] x86/mm: Eliminate hash table in sharing code as index of shared mfns Andres Lagar-Cavilla
2012-01-19 11:39   ` Tim Deegan
2012-01-19 13:12     ` Andres Lagar-Cavilla
2012-01-16  2:56 ` [PATCH 02 of 12] x86/mm: Update mem sharing interface to (re)allow sharing of grants Andres Lagar-Cavilla
2012-01-19 11:56   ` Tim Deegan
2012-01-16  2:56 ` [PATCH 03 of 12] x86/mm: Add per-page locking for memory sharing, when audits are disabled Andres Lagar-Cavilla
2012-01-19 12:13   ` Tim Deegan
2012-01-19 13:02   ` Tim Deegan
2012-01-19 13:06     ` Andres Lagar-Cavilla
2012-01-19 13:13       ` Tim Deegan
2012-01-16  2:56 ` [PATCH 04 of 12] x86/mm: Enforce lock ordering for sharing page locks Andres Lagar-Cavilla
2012-01-19 12:18   ` Tim Deegan
2012-01-16  2:56 ` [PATCH 05 of 12] x86/mm: Check how many mfns are shared, in addition to how many are saved Andres Lagar-Cavilla
2012-01-16  2:56 ` [PATCH 06 of 12] x86/mm: New domctl: add a shared page to the physmap Andres Lagar-Cavilla
2012-01-19 13:04   ` Tim Deegan
2012-01-19 13:09     ` Andres Lagar-Cavilla
2012-01-16  2:56 ` [PATCH 07 of 12] Add the ability to poll stats about shared memory via the console Andres Lagar-Cavilla
2012-01-19 12:53   ` Tim Deegan
2012-01-16  2:56 ` [PATCH 08 of 12] x86/mm: use RCU in mem sharing audit list, eliminate global lock completely Andres Lagar-Cavilla
2012-01-19 12:59   ` Tim Deegan
2012-01-19 13:03     ` Andres Lagar-Cavilla
2012-01-19 13:14       ` Tim Deegan
2012-01-16  2:56 ` [PATCH 09 of 12] Update memshr API and tools Andres Lagar-Cavilla
2012-01-23 15:14   ` Ian Campbell
2012-01-16  2:56 ` [PATCH 10 of 12] Tools: Expose to libxc the total number of shared frames and space saved Andres Lagar-Cavilla
2012-01-16  2:56 ` [PATCH 11 of 12] Tools: Add a sharing command to xl for information about shared pages Andres Lagar-Cavilla
2012-01-19 12:14   ` Ian Campbell
2012-01-16  2:56 ` [PATCH 12 of 12] Memshrtool: tool to test and exercise the sharing subsystem Andres Lagar-Cavilla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).