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

[Xen-devel] [PATCH 0/6] AER unrecoverable error containment

This patch set is part of a set of patchs that together allow containment
of unrecoverable AER errors from PCIe devices assigned to guests in
passthrough mode. The containment is achieved by killing the guest and
hiding the device upon receiving the fatal AER error.

The overall approach is:

1. Change the BIOS settings such that the AER error handling is delegated
   to the host.

2. Change the xen_pciback driver to store the name (SBDF) of the erring
   device in xenstore.

3. At the time of creating the guest, setup a watcher for such writes to
   the xenstore.

4. When the watcher is kicked off due to errors, *destroy* the guest and
   mark the erring device as unassignable until administrative intervention.

5. Provide command line tools to manage the erring devices.

This part implements the support for automatically destroying the guest
that has the device assigned to it, and marking the device as hidden.
Also implemented are the command line tools to manage the hidden devices.

When unrecoverable AER errors are detected from the PCIe devices
assigned to guests in passthrough mode, BIOS's bring down the server,
thus bringing down the entire hypervisor. For this patch set to work,
the AER error handling needs to be delegated to the host operating system.

Venu Busireddy (6):
  xen: Add support for hiding and unhiding pcie passthrough devices
  xl: Add commands for hiding and unhiding pcie passthrough devices
  libxc: Add wrappers for new commands
  libxl: Add wrappers for new commands and add AER error handler
  tools/python/xc: Update pyxc_methods with new commands
  docs: Document the new commands.

 docs/man/xl.pod.1.in                |  24 ++++++
 tools/libxc/include/xenctrl.h       |   4 +
 tools/libxc/xc_domain.c             |  38 +++++++++
 tools/libxl/libxl.h                 |   3 +
 tools/libxl/libxl_event.h           |   2 +
 tools/libxl/libxl_pci.c             | 150 +++++++++++++++++++++++++++++++++
 tools/python/xen/lowlevel/xc/xc.c   |  84 +++++++++++++++++++
 tools/xl/xl.h                       |   3 +
 tools/xl/xl_cmdtable.c              |  17 ++++
 tools/xl/xl_pci.c                   | 125 +++++++++++++++++++++++++++-
 tools/xl/xl_vmcontrol.c             |  11 +++
 xen/common/domctl.c                 |   6 ++
 xen/drivers/passthrough/pci.c       | 161 ++++++++++++++++++++++++++++++++++--
 xen/include/public/domctl.h         |   3 +
 xen/include/xsm/dummy.h             |  18 ++++
 xen/include/xsm/xsm.h               |  16 ++++
 xen/xsm/dummy.c                     |   3 +
 xen/xsm/flask/hooks.c               |  19 +++++
 xen/xsm/flask/policy/access_vectors |   6 +-
 19 files changed, 679 insertions(+), 14 deletions(-)

Xen-devel mailing list



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