[libvirt] [PATCH 0/7] Add more options for IOThreads

John Ferlan jferlan at redhat.com
Wed Sep 3 16:15:29 UTC 2014


The following patches will add more support for IOThreads not completed
from the initial patches. These changes support the remaining elements of
bz https://bugzilla.redhat.com/show_bug.cgi?id=1101574 (working through
unsetting the private bits - as there's nothing in there that should
necessarily be private).

Changes:

 1. Add "--iothread" option to virsh attach-disk to allow using a specific
    iothread when attaching a disk

 2. Add the ability to set CPU affinity for an IOThread.  This involves
    multiple steps (patches 2-6) of adding the infrastructure to support
    setting scheduler affinity for the IOThread including cgroup setup.
    For the most part it's a "copy" of the vCPU pinning code, but without
    the external interfaces - those will come at a later time after RHEL7.1.

 3. Add to <cpuset/> a new element <iothreadpin iothread='#" cpuset="string"/>

  NOTE: I can combine any/all of patches 2-6 - I just kept them separate
        so it wasn't a larger single patch.

Although future changes will support API's and virsh commands to modify
the iothreadpin, this set of changes at least is backportable to RHEL7.1
since there are no external API changes.

John Ferlan (7):
  virsh: Add iothread to 'attach-disk'
  qemu: Issue query-iothreads and to get list of active IOThreads
  vircgroup: Introduce virCgroupNewIOThread
  qemu_domain: Add niothreadpids and iothreadpids
  qemu_cgroup: Introduce cgroup functions for IOThreads
  qemu: Allow pinning specific IOThreads to a CPU
  domain_conf: Add iothreadpin to cputune

 docs/formatdomain.html.in                          |  18 +++
 docs/schemas/domaincommon.rng                      |  10 ++
 src/conf/domain_conf.c                             | 124 +++++++++++++++++++--
 src/conf/domain_conf.h                             |   2 +
 src/libvirt_private.syms                           |   1 +
 src/qemu/qemu_cgroup.c                             | 104 +++++++++++++++++
 src/qemu/qemu_cgroup.h                             |   5 +
 src/qemu/qemu_domain.c                             |  36 ++++++
 src/qemu/qemu_domain.h                             |   3 +
 src/qemu/qemu_driver.c                             |   8 ++
 src/qemu/qemu_monitor.c                            |  41 +++++++
 src/qemu/qemu_monitor.h                            |  12 ++
 src/qemu/qemu_monitor_json.c                       |  91 +++++++++++++++
 src/qemu/qemu_monitor_json.h                       |   4 +
 src/qemu/qemu_process.c                            |  96 ++++++++++++++++
 src/util/vircgroup.c                               |  43 +++++++
 src/util/vircgroup.h                               |   6 +
 tests/qemumonitorjsontest.c                        |  71 ++++++++++++
 .../qemuxml2argv-cputune-iothreads.xml             |  38 +++++++
 tests/qemuxml2xmltest.c                            |   1 +
 tools/virsh-domain.c                               |  13 ++-
 tools/virsh.pod                                    |   5 +-
 22 files changed, 717 insertions(+), 15 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreads.xml

-- 
1.9.3




More information about the libvir-list mailing list