[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v8 00/15] xen: better grant v2 support



Currently Linux has no support for grant v2 as this would reduce the
maximum number of active grants by a factor of 2 compared to v1,
because the number of possible grants are limited by the allowed number
of grant frames and grant entries of v2 need twice as much bytes as
those of v1.

Unfortunately grant v2 is the only way to support either guests with
more than 16TB memory size or PV guests with memory above the 16TB
border, as grant v1 limits the frame number to be 32 bits wide.

In order to remove the disadvantage of grant v2 this patch series
adds support for setting per-domain values regarding grant limits.
Additionally the default limit of grant frames is doubled in case
of hosts with potential memory above the 16TB border.

Changes in V8:
- dropped previous patch 1, as already committed
- patch 1: make gnttab_grow_table() static instead doing so in next
  patch (Jan Beulich)
- patch 3: remove stale #if 0, adjust comments (Paul Durrant)

Changes in V7:
- added patches 5, 6, 9, 16
- patch 2: only call gnttab_set_frame_gfn() if no error (Julien Grall)
- patch 10: don't use xc_maximum_ram_page() but max_possible_mfn from
   physinfo
- patch 13: re-add #include <asm/grant-table.h> in grant_table.h
  (Julien Grall)
- patch 15: add boot parameter documentation changes

Changes in V6:
- several new patches (1, 6, 7, 10, 12)
- order of patches re-arranged to support new hypercall now being
  mandatory
- lots of other small changes

Changes in V5:
- patch 6: add set_gnttab_limits to create_domain_common in xen.if
  (Daniel De Graaf)

Changes in V4:
- patch 3: make ret more local (Wei Liu)
- patch 7: use domid_t (Wei Liu)
- patch 8: rename configuration items to use max_ prefixes (Wei Liu)

Changes in V3:
- patch 1: update commit message
- patch 3: move call of grant_table_init() from gnttab_setup_table() to
  gnttab_grow_table() (Paul Durrant)
- patch 4: correct error message (Paul Durrant)
- patch 6: rename *gnttbl* to *gnttab* (Paul Durrant)

Changes in V2:
- add per-domain grant limits instead of different v1 and v2 limits
- double default limit for huge hosts

Juergen Gross (15):
  xen: move XENMAPSPACE_grant_table code into grant_table.c
  xen: clean up grant_table.h
  xen: add new domctl hypercall to set grant table resource limits
  xen: add function for obtaining highest possible memory address
  xen: add max possible mfn to struct xen_sysctl_physinfo
  libxc: add libxc support for setting grant table resource limits
  tools: set grant limits for xenstore stubdom
  libxl: add max possible mfn to libxl_physinfo
  xl: add global grant limit config items
  libxl: add libxl support for setting grant table resource limits
  xen: delay allocation of grant table sub structures
  xen/arm: move arch specific grant table bits into grant_table.c
  xen: make grant resource limits per domain
  xen: make grant table limits boot parameters dom0 only
  xen: add new Xen cpuid node for max address width info

 docs/man/xl.cfg.pod.5.in             |  16 ++
 docs/man/xl.conf.pod.5               |  12 ++
 docs/misc/xen-command-line.markdown  |  15 +-
 tools/flask/policy/modules/dom0.te   |   2 +-
 tools/flask/policy/modules/xen.if    |   2 +-
 tools/helpers/init-xenstore-domain.c |  11 +
 tools/libxc/include/xenctrl.h        |  14 ++
 tools/libxc/xc_domain.c              |  13 ++
 tools/libxl/libxl.c                  |   1 +
 tools/libxl/libxl.h                  |  15 ++
 tools/libxl/libxl_dm.c               |   3 +
 tools/libxl/libxl_dom.c              |   6 +
 tools/libxl/libxl_types.idl          |   4 +
 tools/xl/xl.c                        |  15 ++
 tools/xl/xl.h                        |   2 +
 tools/xl/xl_parse.c                  |   9 +
 tools/xl/xl_sxp.c                    |   2 +
 xen/arch/arm/domain.c                |   2 -
 xen/arch/arm/domain_build.c          |   2 +-
 xen/arch/arm/mm.c                    |  36 +---
 xen/arch/x86/mm.c                    |  54 ++---
 xen/arch/x86/traps.c                 |   4 +
 xen/common/compat/grant_table.c      |  31 +--
 xen/common/domctl.c                  |   6 +
 xen/common/grant_table.c             | 394 +++++++++++++++++++++++++----------
 xen/common/memory.c                  |   8 +
 xen/common/sysctl.c                  |   1 +
 xen/include/asm-arm/domain.h         |   1 -
 xen/include/asm-arm/grant_table.h    |  23 +-
 xen/include/asm-arm/mm.h             |   5 +
 xen/include/asm-x86/grant_table.h    |   7 +
 xen/include/asm-x86/mm.h             |   2 +
 xen/include/public/arch-x86/cpuid.h  |  11 +-
 xen/include/public/domctl.h          |   7 +
 xen/include/public/sysctl.h          |   2 +
 xen/include/xen/grant_table.h        |  93 +--------
 xen/include/xen/mm.h                 |   3 +
 xen/xsm/flask/hooks.c                |   3 +
 xen/xsm/flask/policy/access_vectors  |   2 +
 39 files changed, 532 insertions(+), 307 deletions(-)

-- 
2.12.3


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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