[libvirt] [PATCH v2 0/9] Implement Add/Del IOThreads

John Ferlan jferlan at redhat.com
Fri Apr 10 21:36:18 UTC 2015


v1:
http://www.redhat.com/archives/libvir-list/2015-March/msg01014.html

v2 is mostly a completely rewrite of v1 - only smart parts were kept,
mostly the "concepts" behind adding/removing a thread

Patches 1&2:
  Couple of simple mods - mostly innocuous

Patches 3-5
  Since it was determined that just setting the IOThread count and
  keeping sequential IOThread ID's may not be a desired means to
  add/remove threads, I decided upon a mechanism which to a degree
  follows the tune/pin mechanism.

  Rework the existing IOThread logic to make use of a new domain
  XML element <iothreadids> which will list each of the <iothread>'s
  with attributes "id" (required) and "name" (optional).  The "id"
  allows one to generate their own ID number/naming mechanism. If
  <iothreadids> is not found in the XML, then internally will generate
  the data structures that support it - IOThreadID's.

  Work the IOThreadID logic into the "live" iothreadpid lists (or now
  arrays) to manage the live IOThread data

Patches 6-7

  Add the API/plumbing for two new API's - virDomainAddIOThread and
  virDomainDelIOThread to complement the existing virDomainPinIOThread.
  The "Add" API will take two parameters - an iothread_id and an optional
  "name".  The "Del" API will take just one parameter - the iothread_id

Patch 8-9

  Implement the qemu backend and virsh front end to manage IOThreads
  either live or just the config file. I did leave some // comments in
  Patch 8 as a way to ask a reviewer their thoughts in the add live
  error path whether 'extra' cleanup should be done or just ignored.
  Those would be cleaned up and removed for the final version.

John Ferlan (9):
  Rename qemuCheckIothreads to qemuCheckIOThreads
  Convert virDomainPinIsDuplicate into bool return
  conf: Add new domain XML element 'iothreadids'
  qemu: Convert iothreadpids into an array of structures
  qemu: Use domain iothreadids to populate iothreadpids
  Implement virDomainAddIOThread and virDomainDelIOThread
  remote: Add support for AddIOThread and DelIOThread
  qemu: Add support to Add/Delete IOThreads
  virsh: Add iothreadadd and iothreaddel commands

 docs/formatdomain.html.in                          |  28 ++
 docs/schemas/domaincommon.rng                      |  17 +
 include/libvirt/libvirt-domain.h                   |   7 +
 src/conf/domain_audit.c                            |   9 +
 src/conf/domain_audit.h                            |   6 +
 src/conf/domain_conf.c                             | 253 ++++++++++-
 src/conf/domain_conf.h                             |  29 +-
 src/driver-hypervisor.h                            |  13 +
 src/libvirt-domain.c                               | 132 ++++++
 src/libvirt_private.syms                           |   7 +
 src/libvirt_public.syms                            |   6 +
 src/qemu/qemu_cgroup.c                             |  16 +-
 src/qemu/qemu_command.c                            | 108 ++++-
 src/qemu/qemu_command.h                            |   4 +
 src/qemu/qemu_domain.c                             |  55 ++-
 src/qemu/qemu_domain.h                             |  12 +-
 src/qemu/qemu_driver.c                             | 467 ++++++++++++++++++++-
 src/qemu/qemu_process.c                            |  32 +-
 src/remote/remote_driver.c                         |   2 +
 src/remote/remote_protocol.x                       |  31 +-
 src/remote_protocol-structs                        |  13 +
 .../qemuxml2argv-iothreads-ids-partial.args        |  10 +
 .../qemuxml2argv-iothreads-ids-partial.xml         |  33 ++
 .../qemuxml2argv-iothreads-ids.args                |   8 +
 .../qemuxml2argv-iothreads-ids.xml                 |  33 ++
 .../qemuxml2argv-iothreads-name.args               |  17 +
 .../qemuxml2argv-iothreads-name.xml                |  44 ++
 tests/qemuxml2argvtest.c                           |   4 +
 tests/qemuxml2xmltest.c                            |   3 +
 tools/virsh-domain.c                               | 174 ++++++++
 tools/virsh.pod                                    |  32 ++
 31 files changed, 1546 insertions(+), 59 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-ids-partial.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-ids-partial.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-ids.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-ids.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-name.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-name.xml

-- 
2.1.0




More information about the libvir-list mailing list