[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