[libvirt] [PATCH 0/7] Add more options for IOThreads
Stefan Hajnoczi
stefanha at gmail.com
Tue Sep 9 08:32:58 UTC 2014
On Wed, Sep 3, 2014 at 5:15 PM, John Ferlan <jferlan at 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 at redhat.com>
More information about the libvir-list
mailing list