mbox series

[v9,00/11] viridian: implement more enlightenments

Message ID 20190319092116.1525-1-paul.durrant@citrix.com (mailing list archive)
Headers show
Series viridian: implement more enlightenments | expand

Message

Paul Durrant March 19, 2019, 9:21 a.m. UTC
This series adds three new enlightenments:

- Synthetic timers, which depends on the...
- Synthetic interrupt controller (or SynIC)
- Synthetic cluster IPI

All these enlightenments are implemented in current versions of QEMU/KVM
so this series closes the gap.

Paul Durrant (11):
  viridian: add init hooks
  viridian: separately allocate domain and vcpu structures
  viridian: use stack variables for viridian_vcpu and viridian_domain...
  viridian: make 'fields' struct anonymous...
  viridian: extend init/deinit hooks into synic and time modules
  viridian: add missing context save helpers into synic and time modules
  viridian: use viridian_map/unmap_guest_page() for reference tsc page
  viridian: stop directly calling
    viridian_time_ref_count_freeze/thaw()...
  viridian: add implementation of synthetic interrupt MSRs
  viridian: add implementation of synthetic timers
  viridian: add implementation of the HvSendSyntheticClusterIpi
    hypercall

 docs/man/xl.cfg.5.pod.in               |  18 +-
 tools/libxl/libxl.h                    |  18 +
 tools/libxl/libxl_dom.c                |  10 +
 tools/libxl/libxl_types.idl            |   3 +
 xen/arch/x86/domain.c                  |  12 +-
 xen/arch/x86/hvm/hvm.c                 |  10 +
 xen/arch/x86/hvm/viridian/private.h    |  31 +-
 xen/arch/x86/hvm/viridian/synic.c      | 376 ++++++++++++++++--
 xen/arch/x86/hvm/viridian/time.c       | 518 ++++++++++++++++++++++---
 xen/arch/x86/hvm/viridian/viridian.c   | 229 +++++++++--
 xen/arch/x86/hvm/vlapic.c              |  20 +-
 xen/include/asm-x86/hvm/domain.h       |   2 +-
 xen/include/asm-x86/hvm/hvm.h          |   7 +
 xen/include/asm-x86/hvm/vcpu.h         |   2 +-
 xen/include/asm-x86/hvm/viridian.h     |  75 +++-
 xen/include/public/arch-x86/hvm/save.h |   4 +
 xen/include/public/hvm/params.h        |  17 +-
 17 files changed, 1212 insertions(+), 140 deletions(-)

v8:
 - Squash in follow-up series

v4:
 - Add two cleanup patches (#3 and #4) and re-order #8 and #9

v3:
 - Add the synthetic cluster IPI patch (#11)

---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>