On 09/03/2014 10:15 AM, John Ferlan 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 Up to this patch, things worked for me, > qemu_cgroup: Introduce cgroup functions for IOThreads > qemu: Allow pinning specific IOThreads to a CPU but with these two patches, I get a compilation failure: qemu/qemu_cgroup.c: In function 'qemuSetupCgroupForIOThreads': qemu/qemu_cgroup.c:1160:41: error: 'struct <anonymous>' has no member named 'niothreadspin' for (j = 0; j < def->cputune.niothreadspin; j++) { ^ > domain_conf: Add iothreadpin to cputune and with this patch, I'm now unable to start a transient domain, with a less-than-stellar message: $ qemu-img create -f qcow2 -o compat=0.10 base.img 10M $ virsh create /dev/stdin <<EOF <domain type='kvm'> <name>testvm1</name> <memory unit='MiB'>256</memory> <vcpu>1</vcpu> <os> <type arch='x86_64'>hvm</type> </os> <devices> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='$PWD/base.img'/> <target dev='vda' bus='virtio'/> </disk> <graphics type='vnc'/> </devices> </domain> EOF error: Failed to create domain from /dev/stdin error: An error occurred, but the cause is unknown Normally, that command starts up a guest (yeah, the guest is doing nothing but wasting CPU cycles, because it has a blank disk, but it's a great little smoke test for my recent work in block jobs) -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list