On Wed, Sep 3, 2014 at 5:15 PM, John Ferlan <jferlan(a)redhat.com> wrote:
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
Looks good
Reviewed-by: Stefan Hajnoczi <stefanha(a)redhat.com>