On 04/23/2018 09:14 AM, Michal Privoznik wrote:
v5 of:
https://www.redhat.com/archives/libvir-list/2018-April/msg00736.html
diff to v4:
- John's review worked in. Partially.
Michal Privoznik (11):
virstoragefile: Introduce virStoragePRDef
qemuDomainDiskChangeSupported: Deny changing reservations
qemu: Introduce pr-manager-helper capability
qemu: Generate pr cmd line at startup
qemu_ns: Allow /dev/mapper/control for PR
qemu_cgroup: Allow /dev/mapper/control for PR
qemu: Introduce pr_helper to qemu.conf
qemu: Start PR daemon on domain startup
qemu_hotplug: Hotplug of reservations
qemu_hotplug: Hotunplug of reservations
qemu: Detect pr-manager-helper capability
Based on what I've also reviewed for Stefan Berger's TPM emulator:
https://www.redhat.com/archives/libvir-list/2018-May/msg00366.html
and in particular patch 14 for cgroup resource mgmt. Would you believe
the same concept would need to apply to pr_helper? At least w/r/t how
many cgroup controlled resources the pr_helper should/would be allowed.
We place similar controls on other threads (cpu, iothread, emulator). I
realize a TPM emulator and a pr_helper thread are very different in what
they are doing, but there are similarities that probably need to be
addressed.
John
docs/formatdomain.html.in | 23 +-
docs/schemas/domaincommon.rng | 34 +--
docs/schemas/storagecommon.rng | 50 +++++
m4/virt-driver-qemu.m4 | 5 +
src/conf/domain_conf.c | 38 ++++
src/libvirt_private.syms | 6 +
src/qemu/libvirtd_qemu.aug | 1 +
src/qemu/qemu.conf | 4 +
src/qemu/qemu_alias.c | 18 ++
src/qemu/qemu_alias.h | 4 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_cgroup.c | 33 ++-
src/qemu/qemu_command.c | 134 ++++++++++++
src/qemu/qemu_command.h | 5 +
src/qemu/qemu_conf.c | 7 +-
src/qemu/qemu_conf.h | 1 +
src/qemu/qemu_domain.c | 66 ++++++
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_hotplug.c | 149 ++++++++++++-
src/qemu/qemu_process.c | 232 +++++++++++++++++++++
src/qemu/qemu_process.h | 6 +
src/qemu/test_libvirtd_qemu.aug.in | 1 +
src/util/virdevmapper.c | 8 +-
src/util/virstoragefile.c | 164 +++++++++++++++
src/util/virstoragefile.h | 18 ++
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 +
.../disk-virtio-scsi-reservations.args | 38 ++++
.../disk-virtio-scsi-reservations.xml | 49 +++++
tests/qemuxml2argvtest.c | 4 +
.../disk-virtio-scsi-reservations.xml | 1 +
tests/qemuxml2xmltest.c | 2 +
36 files changed, 1075 insertions(+), 39 deletions(-)
create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.args
create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.xml
create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations.xml