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

[Xen-devel] [PATCH RFC 0/8] x86/hvm, libxl: HVM SMT topology support


This series are a follow-up on the thread about the performance
of hard-pinned HVM guests. Here we propose allowing libxl to
change how the CPU topology looks like for the HVM guest, which can 
favor certain workloads as depicted by Elena on this thread [0]. 
It shows around 22-23% gain on io bound workloads having the guest
vCPUs hard pinned to the pCPUs with a matching core+thread.

This series is divided as following:
* Patch 1     : Sets initial apicid to be the vcpuid as opposed
                to vcpuid * 2 for each core;
* Patch 2     : Whitespace cleanup
* Patch 3     : Adds new leafs to describe Intel/AMD cache
                topology. Though it's only internal to libxl;
* Patch 4     : Internal call to set per package CPUID values.
* Patch 5 - 8 : Interfaces for xl and libxl for setting topology.

I couldn't quite figure out which user interface was better so I
included both our "smt" option and full description of the topology
i.e. "sockets", "cores", "threads" option same as the "-smp"
option on QEMU. Note that the latter could also be used on
libvirt since topology is described in their XML configs.

It's also an RFC as AMD support isn't implemented yet.

Any comments are appreciated!


[0] http://lists.xen.org/archives/html/xen-devel/2016-01/msg02874.html

Joao Martins (8):
  x86/hvm: set initial apicid to vcpu_id
  libxl: remove whitespace on libxl_types.idl
  libxl: cpuid: add cache core count support
  libxl: cpuid: add guest topology support
  libxl: introduce smt field
  xl: introduce smt option
  libxl: introduce topology fields
  xl: introduce topology options

 docs/man/xl.cfg.pod.5        | 24 ++++++++++++++++++++++++
 tools/libxc/xc_cpuid_x86.c   | 18 +++++++++++++-----
 tools/libxl/libxl_cpuid.c    | 42 ++++++++++++++++++++++++++++++++++++++++++
 tools/libxl/libxl_create.c   |  2 ++
 tools/libxl/libxl_dom.c      | 16 ++++++++++++++++
 tools/libxl/libxl_internal.h |  3 +++
 tools/libxl/libxl_types.idl  | 11 ++++++++---
 tools/libxl/libxl_utils.c    | 17 +++++++++++++++++
 tools/libxl/xl_cmdimpl.c     |  9 +++++++++
 xen/arch/x86/hvm/hvm.c       |  2 +-
 10 files changed, 135 insertions(+), 9 deletions(-)


Xen-devel mailing list



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