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

[Xen-devel] [PATCH v8 for-4.12 00/17] Argo: hypervisor-mediated interdomain communication



Version eight of this series:

Note: This version may not address the currently open discussion on the
ARM hypercall argument convention and type selection for hypercall
parameters.

* Range check applied to numeric args in native hypercall entry
  (ref: the above open discussion)

* Revises the compat ABI and implementation
    - avoids duplication of hypercall op implementations via
      forwarding to native for ops other than sendv
    - register op uses an always-64-bit fixed width pfn type
      for consistent ABI as well as compat reuse of the native op
    - tested communication between VMs on x86-64 host with:
      32-bit PV, 32-bit HVM and 64-bit PV guests

* Applies list_first_entry_or_null macro in multiple loops to
  replace previous use of a list foreach to address review feedback

* Removed stale comments from the public header

New to this series:

* Adds an initial version of a design document for Argo
    - based on work previously sent to the mailing list, covers
      the implementation's granular locking

* Adds a SUPPORT.md section for the feature and Experimental statement

Christopher Clark (17):
  argo: Introduce the Kconfig option to govern inclusion of Argo
  argo: introduce the argo_op hypercall boilerplate
  argo: define argo_dprintk for subsystem debugging
  argo: init, destroy and soft-reset, with enable command line opt
  errno: add POSIX error codes EMSGSIZE, ECONNREFUSED to the ABI
  xen/arm: introduce guest_handle_for_field()
  argo: implement the register op
  argo: implement the unregister op
  argo: implement the sendv op; evtchn: expose send_guest_global_virq
  argo: implement the notify op
  xsm, argo: XSM control for argo register
  xsm, argo: XSM control for argo message send operation
  xsm, argo: XSM control for any access to argo by a domain
  xsm, argo: notify: don't describe rings that cannot be sent to
  MAINTAINERS: add new section for Argo and self as maintainer
  SUPPORT.md : add new entry for the Argo feature
  docs, argo: add design document for Argo

 MAINTAINERS                                  |    7 +
 SUPPORT.md                                   |    4 +
 docs/designs/argo.pandoc                     |  448 +++++
 docs/misc/xen-command-line.pandoc            |   20 +
 tools/flask/policy/modules/guest_features.te |    7 +
 xen/arch/arm/traps.c                         |    3 +
 xen/arch/x86/guest/hypercall_page.S          |    2 +-
 xen/arch/x86/hvm/hypercall.c                 |    3 +
 xen/arch/x86/hypercall.c                     |    3 +
 xen/arch/x86/pv/hypercall.c                  |    3 +
 xen/common/Kconfig                           |   19 +
 xen/common/Makefile                          |    1 +
 xen/common/argo.c                            | 2364 ++++++++++++++++++++++++++
 xen/common/domain.c                          |    9 +
 xen/common/event_channel.c                   |    2 +-
 xen/include/Makefile                         |    1 +
 xen/include/asm-arm/guest_access.h           |    3 +
 xen/include/public/argo.h                    |  267 +++
 xen/include/public/errno.h                   |    2 +
 xen/include/public/xen.h                     |    4 +-
 xen/include/xen/argo.h                       |   44 +
 xen/include/xen/event.h                      |    7 +
 xen/include/xen/hypercall.h                  |   18 +
 xen/include/xen/sched.h                      |    5 +
 xen/include/xlat.lst                         |    9 +
 xen/include/xsm/dummy.h                      |   25 +
 xen/include/xsm/xsm.h                        |   31 +
 xen/xsm/dummy.c                              |    6 +
 xen/xsm/flask/hooks.c                        |   41 +-
 xen/xsm/flask/include/avc.h                  |    4 +-
 xen/xsm/flask/policy/access_vectors          |   16 +
 xen/xsm/flask/policy/security_classes        |    1 +
 32 files changed, 3370 insertions(+), 9 deletions(-)
 create mode 100644 docs/designs/argo.pandoc
 create mode 100644 xen/common/argo.c
 create mode 100644 xen/include/public/argo.h
 create mode 100644 xen/include/xen/argo.h

-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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