Port-xen archive

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

[PATCH v3 0/7] Display IO topology when PXM data is available (plus some cleanup)



Changes in v3:
* Added patch #1 to more consistently define nodes as a u8 and properly
  use NUMA_NO_NODE.
* Make changes to xen_sysctl_numainfo, similar to those made to
  xen_sysctl_topologyinfo. (Q: I kept both sets of changes in the same
  patch #3 to avoid bumping interface version twice. Perhaps it's better
  to split it into two?)
* Instead of copying data for each loop index allocate a buffer and copy
  once for all three queries in sysctl.c.
* Move hypercall buffer management from libxl to libxc (as requested by
  Dario, patches #5 and #6).
* Report topology info for offlined CPUs as well
* Added LIBXL_HAVE_PCITOPO macro

Changes in v2:
* Split topology sysctls into two --- one for CPU topology and the other
  for devices
* Avoid long loops in the hypervisor by using continuations. (I am not
  particularly happy about using first_dev in the interface, suggestions
  for a better interface would be appreciated)
* Use proper libxl conventions for interfaces
* Avoid hypervisor stack corruption when copying PXM data from guest


A few patches that add interface for querying hypervisor about device
topology and allow 'xl info -n' display this information if PXM object
is provided by ACPI.

This series also makes some optimizations and cleanup of current CPU
topology and NUMA sysctl queries.


Boris Ostrovsky (7):
  x86/numa: Make use of NUMA_NO_NODE consistent
  pci: Do not ignore device's PXM information
  sysctl: Make topologyinfo and numainfo sysctls a little more
    efficient
  sysctl: Add sysctl interface for querying PCI topology
  libxl/libxc: Move libxl_get_cpu_topology()'s hypercall buffer
    management to libxc
  libxl/libxc: Move libxl_get_numainfo()'s hypercall buffer management
    to libxc
  libxl: Add interface for querying hypervisor about PCI topology

 tools/libxc/include/xenctrl.h       |   11 ++-
 tools/libxc/xc_misc.c               |   84 ++++++++++++---
 tools/libxl/libxl.c                 |  152 ++++++++++++-------------
 tools/libxl/libxl.h                 |   14 +++
 tools/libxl/libxl_freebsd.c         |   14 +++
 tools/libxl/libxl_internal.h        |    5 +
 tools/libxl/libxl_linux.c           |   74 ++++++++++++
 tools/libxl/libxl_netbsd.c          |   14 +++
 tools/libxl/libxl_types.idl         |    7 +
 tools/libxl/libxl_utils.c           |    8 ++
 tools/libxl/xl_cmdimpl.c            |   44 ++++++-
 tools/misc/xenpm.c                  |   92 ++++++---------
 tools/python/xen/lowlevel/xc/xc.c   |  103 ++++++-----------
 xen/arch/x86/physdev.c              |   23 ++++-
 xen/arch/x86/smpboot.c              |    2 +-
 xen/arch/x86/srat.c                 |   39 ++++---
 xen/arch/x86/x86_64/mm.c            |    2 +-
 xen/common/sysctl.c                 |  214 ++++++++++++++++++++++++++---------
 xen/drivers/passthrough/pci.c       |   13 ++-
 xen/drivers/passthrough/vtd/iommu.c |    4 +-
 xen/include/asm-x86/numa.h          |    4 +-
 xen/include/public/physdev.h        |    6 +
 xen/include/public/sysctl.h         |  104 ++++++++++++-----
 xen/include/xen/pci.h               |    5 +-
 24 files changed, 698 insertions(+), 340 deletions(-)



Home | Main Index | Thread Index | Old Index