[PATCH v2 0/5] x86: extended destination ID support

Roger Pau Monne posted 5 patches 2 years, 2 months ago
Test gitlab-ci failed
Failed in applying to current master (apply log)
docs/man/xl.cfg.5.pod.in               | 10 ++++++
tools/include/libxl.h                  |  8 +++++
tools/libs/light/libxl_create.c        |  6 ++++
tools/libs/light/libxl_types.idl       |  1 +
tools/libs/light/libxl_x86.c           | 12 +++++++
tools/xl/xl_parse.c                    |  3 ++
xen/arch/arm/ioreq.c                   |  5 +++
xen/arch/x86/domain.c                  | 10 +++++-
xen/arch/x86/hvm/ioreq.c               |  7 +++++
xen/arch/x86/hvm/irq.c                 |  5 ++-
xen/arch/x86/hvm/vioapic.c             |  3 ++
xen/arch/x86/hvm/vmsi.c                | 43 +++++++++++++++++++-------
xen/arch/x86/include/asm/domain.h      |  3 ++
xen/arch/x86/include/asm/hvm/hvm.h     |  5 +--
xen/arch/x86/include/asm/msi.h         |  7 +++++
xen/arch/x86/setup.c                   |  1 +
xen/arch/x86/traps.c                   |  3 ++
xen/common/ioreq.c                     |  8 +++--
xen/drivers/passthrough/x86/hvm.c      | 11 ++++++-
xen/drivers/vpci/msi.c                 |  2 +-
xen/include/public/arch-x86/cpuid.h    |  6 ++++
xen/include/public/arch-x86/hvm/save.h |  4 ++-
xen/include/public/arch-x86/xen.h      |  2 ++
xen/include/public/domctl.h            |  3 +-
xen/include/public/hvm/dm_op.h         |  6 +++-
xen/include/xen/ioreq.h                |  2 ++
xen/include/xen/vpci.h                 |  2 +-
27 files changed, 153 insertions(+), 25 deletions(-)
[PATCH v2 0/5] x86: extended destination ID support
Posted by Roger Pau Monne 2 years, 2 months ago
Hello,

The following series provide a tentative implementation of extended
destination ID support for HVM/PVH guests. A specification for the
feature can be found at:

http://david.woodhou.se/15-bit-msi.pdf

Patch 4 is the one I'm having more doubts about: it's the best thing I
could come up in order for emulators to signal Xen whether they support
parsing the extended destination ID in MSI message address field. This
is only required for device models that support PCI passthrough:
injection of MSI interrupts from emulated devices is done using
XEN_DMOP_inject_msi which already passes the MSI address and data fields
to Xen for processing.

I think we should likely consider patch 1, as it would allow the OS side
of this to make progress (since it's an already present feature in other
hypervisors) independently of the Xen side work.

Thanks, Roger.

Roger Pau Monne (5):
  x86/cpuid: add CPUID flag for Extended Destination ID support
  xen/vioapic: add support for the extended destination ID field
  x86/vmsi: add support for extended destination ID in address field
  x86/ioreq: report extended destination ID support by emulators
  x86/cpuid: expose EXT_DEST_ID feature if supported

 docs/man/xl.cfg.5.pod.in               | 10 ++++++
 tools/include/libxl.h                  |  8 +++++
 tools/libs/light/libxl_create.c        |  6 ++++
 tools/libs/light/libxl_types.idl       |  1 +
 tools/libs/light/libxl_x86.c           | 12 +++++++
 tools/xl/xl_parse.c                    |  3 ++
 xen/arch/arm/ioreq.c                   |  5 +++
 xen/arch/x86/domain.c                  | 10 +++++-
 xen/arch/x86/hvm/ioreq.c               |  7 +++++
 xen/arch/x86/hvm/irq.c                 |  5 ++-
 xen/arch/x86/hvm/vioapic.c             |  3 ++
 xen/arch/x86/hvm/vmsi.c                | 43 +++++++++++++++++++-------
 xen/arch/x86/include/asm/domain.h      |  3 ++
 xen/arch/x86/include/asm/hvm/hvm.h     |  5 +--
 xen/arch/x86/include/asm/msi.h         |  7 +++++
 xen/arch/x86/setup.c                   |  1 +
 xen/arch/x86/traps.c                   |  3 ++
 xen/common/ioreq.c                     |  8 +++--
 xen/drivers/passthrough/x86/hvm.c      | 11 ++++++-
 xen/drivers/vpci/msi.c                 |  2 +-
 xen/include/public/arch-x86/cpuid.h    |  6 ++++
 xen/include/public/arch-x86/hvm/save.h |  4 ++-
 xen/include/public/arch-x86/xen.h      |  2 ++
 xen/include/public/domctl.h            |  3 +-
 xen/include/public/hvm/dm_op.h         |  6 +++-
 xen/include/xen/ioreq.h                |  2 ++
 xen/include/xen/vpci.h                 |  2 +-
 27 files changed, 153 insertions(+), 25 deletions(-)

-- 
2.34.1