[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.