This adds the support for qemu's scsi-generic device, which can be used to passthrough scsi host device. An example of the XML: <hostdev mode='subsystem' type='scsi' managed='no'> <source> <adapter name='scsi_host7'/> <address bus='0' target='0' unit='0'/> </source> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </hostdev> v3 - v4 (details in each patch): * Rebased on top * Support <shareable> * Support <sgio> * Various preparation patches for <shareable> and <sgio> * Split 1/10 in v3 into 2 patches (<readonly> now is a single patch, for easy reviewing, and <readonly> is a sub-element of "hostdev" in rng schema, because it could be used by other type hostdev in future). * Split 4/10 in v3 into 2 patches (bootindex support now is a single patch, for easy reviewing) v2.5 - v3 (details in each patch): * 1/10 and 2/10 of v2.5 are pushed * 8/10 of v2.5 is splitted * A better way to generate the address for scsi host device instead of the rigid one. * Support all scsi controllers when building the qemu command line. * Figure out the limits of the qemu properties, and do checking * Don't forget DAC and apparmor security backends * Orgnize the patches in a better way. * Fix the make check failure Han Cheng (7): conf: Generic XMLs for scsi hostdev qemu: New cap flags for scsi-generic utils: util functions for scsi hostdev qemu: Build qemu command line for scsi host device qemu: Introduce activeScsiHostdevs list for scsi host devices qemu: Add hotplug support for scsi host device qemu: Allow the scsi-generic device in cgroup Osier Yang (18): rng: Interleave hostdev elements Introduce <readonly> for hostdev qemu: Support bootindex for scsi host device security: Manage the security label for scsi host device qemu: Refactor helpers for USB device attachment conf: Generate address for scsi host device automatically conf: Introduce <shareable> for hostdev utils: Rename scsi->path to scsi->sg_path qemu: Rename qemu_driver->sharedDisks to qemu_driver->sharedDevices utils: Add a helper to get the device name that sg device mapped to qemu: Refactor the helpers to track shared scsi host device qemu: Manage shared device entry for scsi host device Rename virDomainDiskSGIO to virDomainDeviceSGIO conf: Introduce sgio for hostdev qemu: Move qemuSetUnprivSGIO into qemu_conf.c qemu: Refactor qemuSetUnprivSGIO to support scsi host device qemu: Set unpriv_sgio for scsi host device qemu: Check conflicts for shared scsi host device docs/formatdomain.html.in | 49 ++- docs/schemas/domaincommon.rng | 86 +++- po/POTFILES.in | 1 + src/Makefile.am | 1 + src/conf/domain_audit.c | 10 + src/conf/domain_conf.c | 353 +++++++++++++++- src/conf/domain_conf.h | 24 +- src/libvirt_private.syms | 23 ++ src/qemu/qemu_capabilities.c | 21 +- src/qemu/qemu_capabilities.h | 2 + src/qemu/qemu_cgroup.c | 46 ++- src/qemu/qemu_command.c | 146 ++++++- src/qemu/qemu_command.h | 6 + src/qemu/qemu_conf.c | 372 ++++++++++++----- src/qemu/qemu_conf.h | 38 +- src/qemu/qemu_driver.c | 25 +- src/qemu/qemu_hostdev.c | 235 +++++++++++ src/qemu/qemu_hostdev.h | 10 + src/qemu/qemu_hotplug.c | 210 ++++++++-- src/qemu/qemu_process.c | 64 +-- src/qemu/qemu_process.h | 1 - src/security/security_apparmor.c | 49 ++- src/security/security_dac.c | 76 +++- src/security/security_selinux.c | 72 +++- src/util/virscsi.c | 455 +++++++++++++++++++++ src/util/virscsi.h | 88 ++++ tests/qemuhelpdata/qemu-1.0-device | 10 + tests/qemuhelpdata/qemu-1.1.0-device | 10 + tests/qemuhelpdata/qemu-1.2.0-device | 5 + tests/qemuhelpdata/qemu-kvm-1.2.0-device | 5 + tests/qemuhelptest.c | 19 +- .../qemuxml2argv-hostdev-scsi-boot.args | 9 + .../qemuxml2argv-hostdev-scsi-boot.xml | 34 ++ .../qemuxml2argv-hostdev-scsi-lsi.args | 9 + .../qemuxml2argv-hostdev-scsi-lsi.xml | 35 ++ .../qemuxml2argv-hostdev-scsi-readonly.args | 9 + .../qemuxml2argv-hostdev-scsi-readonly.xml | 36 ++ .../qemuxml2argv-hostdev-scsi-sgio.xml | 35 ++ .../qemuxml2argv-hostdev-scsi-shareable.xml | 36 ++ .../qemuxml2argv-hostdev-scsi-virtio-scsi.args | 9 + .../qemuxml2argv-hostdev-scsi-virtio-scsi.xml | 35 ++ tests/qemuxml2argvtest.c | 18 + tests/qemuxml2xmltest.c | 6 + 43 files changed, 2469 insertions(+), 314 deletions(-) create mode 100644 src/util/virscsi.c create mode 100644 src/util/virscsi.h create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-sgio.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.xml -- 1.8.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list