[libvirt] [PATCH 0/8] vfio-ccw passthrough support
by Shalini Chellathurai Saroja
Let us support the basic channel I/O passthrough infrastructure based on
vfio, which have been introduced in QEMU 2.10. The current focus is to
support dasd-eckd (cu_type/dev_type = 0x3990/0x3390) as the target
device.
Shalini Chellathurai Saroja (8):
qemu: introduce capability for virtual-css-bridge
qemu: introduce vfio-ccw capability
util: virhostdev: add virHostdevIsMdevDevice()
qemu: vfio-ccw device address generation
qemu: command line generation for vfio-ccw device
tests: tests for vfio-ccw passthrough
docs: documentation for vfio-ccw passthrough
news: documentation of new feature
docs/drvnodedev.html.in | 21 ++++-
docs/formatdomain.html.in | 20 +++-
docs/news.xml | 9 ++
docs/schemas/domaincommon.rng | 5 +-
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 23 +++++
src/qemu/qemu_capabilities.h | 5 +
src/qemu/qemu_command.c | 37 ++++++--
src/qemu/qemu_domain.c | 2 +-
src/qemu/qemu_domain_address.c | 32 +++++--
src/qemu/qemu_hostdev.c | 3 +-
src/qemu/qemu_hotplug.c | 4 +-
src/util/virhostdev.c | 26 ++++--
src/util/virhostdev.h | 3 +
src/util/virmdev.c | 3 +-
src/util/virmdev.h | 1 +
.../qemucapabilitiesdata/caps_2.10.0.s390x.replies | 28 ++++--
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 3 +-
.../qemucapabilitiesdata/caps_2.11.0.s390x.replies | 28 ++++--
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 3 +-
.../qemucapabilitiesdata/caps_2.12.0.s390x.replies | 31 +++++--
tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 3 +
.../qemucapabilitiesdata/caps_2.7.0.s390x.replies | 24 +++--
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 +-
.../qemucapabilitiesdata/caps_2.8.0.s390x.replies | 28 ++++--
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 +-
.../qemucapabilitiesdata/caps_2.9.0.s390x.replies | 28 ++++--
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 +-
tests/qemuhotplugtest.c | 2 +-
...tdev-subsys-mdev-vfio-ccw-duplicate-address.xml | 29 ++++++
...ostdev-subsys-mdev-vfio-ccw-invalid-address.xml | 23 +++++
.../hostdev-subsys-mdev-vfio-ccw.args | 23 +++++
.../hostdev-subsys-mdev-vfio-ccw.xml | 22 +++++
tests/qemuxml2argvtest.c | 102 ++++++++++++---------
.../hostdev-subsys-mdev-vfio-ccw.xml | 28 ++++++
tests/qemuxml2xmltest.c | 31 ++++---
36 files changed, 491 insertions(+), 149 deletions(-)
create mode 100644 tests/qemuxml2argvdata/hostdev-subsys-mdev-vfio-ccw-duplicate-address.xml
create mode 100644 tests/qemuxml2argvdata/hostdev-subsys-mdev-vfio-ccw-invalid-address.xml
create mode 100644 tests/qemuxml2argvdata/hostdev-subsys-mdev-vfio-ccw.args
create mode 100644 tests/qemuxml2argvdata/hostdev-subsys-mdev-vfio-ccw.xml
create mode 100644 tests/qemuxml2xmloutdata/hostdev-subsys-mdev-vfio-ccw.xml
--
2.13.4
6 years, 5 months
[libvirt] [PATCH] Qemu driver: Support network-backed pflash disks.
by Prerna Saxena
This implements support for firmware loader & NVRAM disks over network-backed disks.
As discussed in https://www.redhat.com/archives/libvir-list/2018-March/msg01721.html,
the patch embeds the <source> spec for disks in <loader> and <nvram> elements as well.
Currently, the source type is annotated by introducing a new attribute "backing" for both
'loader' and 'nvram' elements. Hence, a sample XML with new annotation looks like this:
<loader readonly='yes' type='pflash' backing='file'>
<source file='/usr/share/OVMF/OVMF_CODE.fd'/>
</loader>
<nvram backing='network'> <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
<host name='example.com' port='6000'/>
</source>
The patche automatically re-formats any older-stype declaration into this new style.
Templates can be used to create a new NVRAM only if the nvram backing = 'file'.
6 years, 6 months
[libvirt] [PATCH 0/3] conf: <vmcoreinfo> tweaks
by Cole Robinson
Patch #1 changes the vmcoreinfo XML schema slightly to be more future
proof, this is technically an API break but I'm not sure it matters,
see the patch for more details.
Patch #3 adds vmcoreinfo reporting to domain capabilities. The
schema doesn't follow the typical pattern so if anyone has other ideas
please comment
Cole Robinson (3):
conf: format/parse <vmcoreinfo> as tristate
conf: Add a comment warning about boolean feature XML
domain_capabilities: Report <vmcoreinfo> support
docs/formatdomaincaps.html.in | 5 +++++
docs/schemas/domaincaps.rng | 7 +++++++
docs/schemas/domaincommon.rng | 6 +++++-
src/conf/domain_capabilities.c | 2 ++
src/conf/domain_capabilities.h | 1 +
src/conf/domain_conf.c | 6 ++++--
src/qemu/qemu_capabilities.c | 3 +++
tests/domaincapsschemadata/basic.xml | 1 +
tests/domaincapsschemadata/bhyve_basic.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_uefi.x86_64.xml | 1 +
tests/domaincapsschemadata/full.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv.xml | 1 +
tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml | 1 +
tests/qemuxml2xmloutdata/vmcoreinfo.xml | 2 +-
33 files changed, 53 insertions(+), 4 deletions(-)
--
2.17.0
6 years, 6 months
[libvirt] [PATCH 0/6] Complete cleanup of domain object usage
by John Ferlan
This should be the "last time" (famous last words) needing to alter
this processing. I hope to get more than one pair of eyes looking
at the series. I've looked at it long enough to feel comfortable
with the changes, but I also know I probably have looked at it
so long that I could have missed something!
The first 3 patches set up the necessary infrastructure. Patches
4 & 5 are just something I found in libxl while doing this - they
could be extracted and considered separately if need be; however,
since I was thinking about @vm referencing - it just seemed to fit.
Since I altered @vm it only seemed right to do the same for @conn.
While it could be said that neither condition could happen - I
figured better safe than sorry and I think it follows how this type
of logic has been handled elsewhere in qemu.
Patch 6 is where all the magic happens. I tried a few different ways
to rework and split the Add/Remove processing, but either way I was
left with rather ugly patches that required touching the same places,
so I capitulated and combined them since there really is a delicate
balance between those paths that have added a virObjectRef after the
virDomainObjListAdd and those that just use virObjectUnlock on the
returned ListAdd objects. Converting the latter to use Ref caused more
"busy work" and equally large patches. The busy work was mosting around
the processing required during ListAdd if something happened which
resulted in ListRemove needing to be called.
The "general change" is that instead of having ListAdd return an object
with 2 refs and 1 lock it will now return an object with 3 refs and 1
lock. With that returned object, some drivers would perform an ObjectRef
while others did not. For those that did not, they would use ObjectUnlock
when done with the object so that when leaving whatever Create routine
there was there would be at least 2 Refs on the object. The change here
is to have them all be consistent. What follows is a "general description"
of what was done for each.
For bhyve, openvz, test, uml, and vmware (e.g. domain drivers that
do not use virObjectRef on the returned virDomainObjListAdd object):
Create/Add processing:
-> Use EndAPI instead of ObjectUnlock
-> Remove setting vm = NULL if the ListRemove was called to allow
EndAPI processing to perform last Unref and Unlock
NB: ListRemove would remove 2 refs and unlock, so it "worked",
but would "consume" the returned object
Undefine/Destroy processing:
-> Alter ListRemove and ObjectLock to just be ListRemove allowing the
EndAPI processing from a FindBy* to perform last Unref and Unlock
For libxl, lxc, qemu, and vz (e.g. domain drivers that use virObjectRef
on the returned virDomainObjListAdd object):
Create/Add processing:
-> Remove the ObjectRef
-> Remove the ObjectLock when needing to call ListRemove to allow
EndAPI processing to perform the last Unref and Unlock
NB: ListRemove no longer Unlock's the returned object
Undefine/Destroy processing:
-> Alter ListRemove and ObjectLock to just be ListRemove allowing the
EndAPI processing from a FindBy* to perform last Unref and Unlock
NB: For the AutoDestroy type logic, no change is required since in the
long run the object was left with the correct number of refs after
create processing ran. The issue is more the direct mgmt of object
during Add/Remove rather than mgmt of object once defined.
John Ferlan (6):
conf: Split FindBy{UUID|Name} into locked helpers
conf: Use virDomainObjListFindBy*Locked for virDomainObjListAdd
conf: Move and use virDomainObjListRemoveLocked
libxl: Add refcnt for args->vm during migration
libxl: Add refcnt for args->conn during migration
conf: Clean up object referencing for Add and Remove
src/bhyve/bhyve_driver.c | 21 ++----
src/conf/virdomainobjlist.c | 165 ++++++++++++++++++++++++++++----------------
src/libxl/libxl_driver.c | 64 ++++-------------
src/libxl/libxl_migration.c | 41 ++++-------
src/lxc/lxc_driver.c | 21 ++----
src/lxc/lxc_process.c | 17 +++--
src/openvz/openvz_conf.c | 2 +-
src/openvz/openvz_driver.c | 20 ++----
src/qemu/qemu_domain.c | 17 +----
src/qemu/qemu_driver.c | 6 +-
src/qemu/qemu_migration.c | 3 +-
src/test/test_driver.c | 56 +++++----------
src/uml/uml_driver.c | 37 +++-------
src/vmware/vmware_conf.c | 3 +-
src/vmware/vmware_driver.c | 17 ++---
src/vz/vz_driver.c | 1 -
src/vz/vz_sdk.c | 3 -
17 files changed, 192 insertions(+), 302 deletions(-)
--
2.13.6
6 years, 6 months
[libvirt] [PATCH 0/3] Ditch qemu-img help scraping
by Ján Tomko
Ján Tomko (3):
tests: delete most qemu-img test cases assuming FMT_OPTIONS
tests: assume FMT_COMPAT for qemu-img tests
storage: remove qemu-img help scraping
src/storage/storage_util.c | 73 ++-------------------
src/storage/storage_util.h | 1 -
.../qcow2-convert-nobacking.argv | 2 -
.../storagevolxml2argvdata/qcow2-from-logical.argv | 2 -
.../qcow2-nobacking-convert-prealloc.argv | 2 -
.../qcow2-nobacking-prealloc.argv | 2 -
.../qcow2-nocapacity-convert-prealloc.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocapacity.argv | 2 +-
tests/storagevolxml2argvdata/qcow2.argv | 2 -
tests/storagevolxml2argvtest.c | 74 ++++++----------------
10 files changed, 24 insertions(+), 138 deletions(-)
delete mode 100644 tests/storagevolxml2argvdata/qcow2-convert-nobacking.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-from-logical.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-nobacking-prealloc.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2.argv
--
2.13.6
6 years, 6 months
[libvirt] [PATCH 00/14] nwfilter: refactor the driver to make it independent of virt drivers
by Daniel P. Berrangé
Today the nwfilter driver is entangled with the virt drivers in both
directions. At various times when rebuilding filters nwfilter will call
out to the virt driver to iterate over running guest's NICs. This has
caused very complicated lock ordering rules to be required. If we are to
split the virt drivers out into separate daemons we need to get rid of
this coupling since we don't want the separate daemons calling each
other, as that risks deadlock if all of the RPC workers are busy.
The obvious way to solve this is to have the nwfilter driver remember
all the filters it has active, avoiding the need to iterate over running
guests.
NB, these patches are all ready for review, but the last patch really
should not be merged at this time. I need to do more work to be able to
serialize the filter state to disk, so the nwfilter driver can keep track
of it across daemon restarts. All except the last patch should be ok to
merge though.
Daniel P. Berrangé (14):
nwfilter: remove pointless virNWFilterHashTable struct
nwfilter: remove methods that are trivial wrappers for virHash APIs
nwfilter: remove virNWFilterHashTable typedefs entirely
nwfilter: make virNWFilterIPAddrLearnReq type private
nwfilter: remove obsolete code related to firewalld
nwfilter: fix leaking of filter parameters upon error
nwfilter: introduce virNWFilterBinding to decouple from virDomainNet
nwfilter: pass vm name in when instantiating filters
nwfilter: convert the gentech driver code to use virNWFilterBinding
nwfilter: convert IP address learning code to virNWFilterBinding
nwfilter: convert DHCP address snooping code to virNWFilterBinding
nwfilter: report an error if nic needs filtering by no driver is
present
nwfilter: keep track of active filter bindings
nwfilter: remove virt driver callback layer for rebuilding filters
src/conf/domain_conf.c | 8 +-
src/conf/domain_conf.h | 2 +-
src/conf/domain_nwfilter.c | 14 +-
src/conf/domain_nwfilter.h | 6 +-
src/conf/nwfilter_conf.c | 224 ++++++++---------
src/conf/nwfilter_conf.h | 67 ++---
src/conf/nwfilter_ipaddrmap.c | 15 +-
src/conf/nwfilter_params.c | 127 +++-------
src/conf/nwfilter_params.h | 33 +--
src/conf/virnwfilterobj.c | 4 +-
src/conf/virnwfilterobj.h | 4 +-
src/libvirt_private.syms | 8 +-
src/lxc/lxc_driver.c | 28 ---
src/lxc/lxc_process.c | 2 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 153 +++++-------
src/nwfilter/nwfilter_dhcpsnoop.h | 7 +-
src/nwfilter/nwfilter_driver.c | 97 +++++---
src/nwfilter/nwfilter_driver.h | 2 -
src/nwfilter/nwfilter_gentech_driver.c | 432 ++++++++++++++++++---------------
src/nwfilter/nwfilter_gentech_driver.h | 28 +--
src/nwfilter/nwfilter_learnipaddr.c | 113 ++++-----
src/nwfilter/nwfilter_learnipaddr.h | 25 +-
src/nwfilter/nwfilter_tech_driver.h | 2 +-
src/qemu/qemu_driver.c | 25 --
src/qemu/qemu_hotplug.c | 6 +-
src/qemu/qemu_interface.c | 4 +-
src/qemu/qemu_process.c | 2 +-
src/uml/uml_conf.c | 2 +-
src/uml/uml_driver.c | 29 ---
tests/nwfilterxml2firewalltest.c | 36 +--
30 files changed, 642 insertions(+), 863 deletions(-)
--
2.14.3
6 years, 6 months
[libvirt] [PATCH v3 0/3] Support tpm-crb TPM interface for QEMU
by Stefan Berger
This patch series adds support for the recently added tpm-crb TPM
interface for QEMU (2.12).
Stefan
Stefan Berger (3):
tpm: Enable TPM CRB interface in the domain XML and test it
qemu: Extend the capabilities with tpm-crb device
tests: add test case for tpm-crb QEMU device command line
docs/formatdomain.html.in | 6 +++-
docs/schemas/domaincommon.rng | 5 +++-
src/conf/domain_conf.c | 5 ++--
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 5 ++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 16 +++++++++-
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 +
tests/qemuxml2argvdata/tpm-passthrough-crb.args | 26 ++++++++++++++++
tests/qemuxml2argvdata/tpm-passthrough-crb.xml | 32 ++++++++++++++++++++
tests/qemuxml2argvtest.c | 2 ++
tests/qemuxml2xmloutdata/tpm-passthrough-crb.xml | 36 +++++++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
13 files changed, 131 insertions(+), 6 deletions(-)
create mode 100644 tests/qemuxml2argvdata/tpm-passthrough-crb.args
create mode 100644 tests/qemuxml2argvdata/tpm-passthrough-crb.xml
create mode 100644 tests/qemuxml2xmloutdata/tpm-passthrough-crb.xml
--
2.5.5
6 years, 6 months
[libvirt] [qemu RFC v3 0/3] qapi: add "firmware.json"
by Laszlo Ersek
This version seeks to address the RFCv2 feedback. Changes are noted per
patch.
Cc: "Daniel P. Berrange" <berrange(a)redhat.com>
Cc: David Gibson <dgibson(a)redhat.com>
Cc: Eric Blake <eblake(a)redhat.com>
Cc: Gerd Hoffmann <kraxel(a)redhat.com>
Cc: Kashyap Chamarthy <kchamart(a)redhat.com>
Cc: Markus Armbruster <armbru(a)redhat.com>
Cc: Paolo Bonzini <pbonzini(a)redhat.com>
Cc: Thomas Huth <thuth(a)redhat.com>
Thanks,
Laszlo
Laszlo Ersek (3):
qapi: add SysEmuTarget to "common.json"
qapi: change the type of TargetInfo.arch from string to enum
SysEmuTarget
qapi: add "firmware.json"
Makefile | 9 +
Makefile.objs | 4 +
qapi/common.json | 19 ++
qapi/firmware.json | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++
qapi/misc.json | 6 +-
qapi/qapi-schema.json | 1 +
arch_init.c | 18 +-
qmp.c | 5 +
.gitignore | 4 +
9 files changed, 617 insertions(+), 3 deletions(-)
create mode 100644 qapi/firmware.json
--
2.14.1.3.gb7cf6e02401b
6 years, 6 months
[libvirt] [PATCH 0/5] Improve translation handling
by Daniel P. Berrangé
This series aims to improve the way we handle translations.
The key problems with our current approach
- The pot & po files stored in GIT contain huge set of
annotations about source file names & line numbers.
These are out of date as soon as a change is commited
to git following a translation refresh. This makes
diffs impossible to meaningfully review, as they are
98% noise, 2% signal.
- The po file messages are sorted by source location,
so when we move code between files, or rename files,
the po file message order changes for no good reason.
This makes diffs even more impossible to review.
- The po files contain entries for all messages even
if most have no translation, bloating size of po/
data stored in git
- Whenever 'make dist' is run, it alters all the pot
and po files, so developers need to then reset their
content to match git HEAD manually. This is caused
by having auto-generated content (source file locations)
mixed in with the static content (the actual translated
strings)
Overall the *.po files we store consume 100MB, and when
I refresh content from Zanata, it results in git commits
that are many 10's of MB in size and impossible todo any
meaningful review on.
After this series, we only minimized po files in git, with
the redundated & outdated source locations info stripped.
This stripped info is re-added automatically during build
to create the real .po files, that we distribute, and/or
upload to translators in Zanata.
As a result the po directory is only 19MB in size, and
when refreshing from Zanata, we have git commits that
clearly show *only* the altered translations, nothing
else. The importance of this cannot be overstated - by
having these clear diffs I discovered a serious bug in
the Zanata client that has been screwing up translations
in every project that uses Zanata by adding bogus "fuzzy"
annotations.
Note that what I've posted here is a cut-down version of
what will actually be pushed. I have cut out the 99 other
patches that actally change the .po files. There's no
meaningful way to review those commits because of the
noise in the original .po files we're replacing. I have
gone through manual steps, however, to validate that the
.po files we generate from the new .mini.po files are
identical to the original .po files we used to store,
aside from the bogus fuzzy annotations due to broken
Zanata.
The diffstat shown below covers the full set of patches
on the branch at:
https://github.com/berrange/libvirt/commits/i18n-4
The killer statistic is:
418787 insertions(+), 4388281 deletions(-)
Daniel P. Berrangé (5):
po: provide custom make rules for po file management
po: remove language list from zanata configuration
po: add rules for integration with zanata
po: stop storing libvirt.pot in git
po: minimize & canonicalize translations stored in git
.gitignore | 9 +-
ABOUT-NLS | 1 +
autogen.sh | 3 +-
bootstrap.conf | 38 -
build-aux/minimize-po.pl | 37 +
configure.ac | 33 +-
m4/virt-nls.m4 | 70 +
po/Makefile.am | 107 +
po/{POTFILES.in => POTFILES} | 0
po/README.md | 75 +
po/af.mini.po | 20 +
po/af.po | 46395 ------------------------------
po/am.mini.po | 20 +
po/am.po | 46395 ------------------------------
po/anp.mini.po | 20 +
po/anp.po | 46395 ------------------------------
po/ar.mini.po | 762 +
po/ar.po | 46685 ------------------------------
po/{as.po => as.mini.po} | 54246 ++++++++++-------------------------
po/ast.mini.po | 20 +
po/ast.po | 46395 ------------------------------
po/bal.mini.po | 20 +
po/bal.po | 46395 ------------------------------
po/be.mini.po | 21 +
po/be.po | 46396 ------------------------------
po/bg.mini.po | 1204 +
po/bg.po | 46733 ------------------------------
po/bn.mini.po | 761 +
po/bn.po | 46684 ------------------------------
po/bn_IN.mini.po | 9131 ++++++
po/bn_IN.po | 46729 ------------------------------
po/bo.mini.po | 20 +
po/bo.po | 46395 ------------------------------
po/br.mini.po | 20 +
po/br.po | 46395 ------------------------------
po/brx.mini.po | 20 +
po/brx.po | 46395 ------------------------------
po/bs.mini.po | 767 +
po/bs.po | 46693 ------------------------------
po/ca.mini.po | 1618 ++
po/ca.po | 46555 ------------------------------
po/cs.mini.po | 4146 +++
po/cs.po | 46751 ------------------------------
po/cy.mini.po | 762 +
po/cy.po | 46701 ------------------------------
po/da.mini.po | 982 +
po/da.po | 46704 ------------------------------
po/de.mini.po | 22654 +++++++++++++++
po/de.po | 47656 -------------------------------
po/de_CH.mini.po | 20 +
po/de_CH.po | 46395 ------------------------------
po/el.mini.po | 724 +
po/el.po | 46857 ------------------------------
po/en_GB.mini.po | 22271 +++++++++++++++
po/en_GB.po | 47573 -------------------------------
po/eo.mini.po | 20 +
po/eo.po | 46395 ------------------------------
po/es.mini.po | 22622 +++++++++++++++
po/es.po | 47748 -------------------------------
po/et.mini.po | 761 +
po/et.po | 46684 ------------------------------
po/eu.mini.po | 761 +
po/eu.po | 46684 ------------------------------
po/fa.mini.po | 20 +
po/fa.po | 46395 ------------------------------
po/fi.mini.po | 1281 +
po/fi.po | 46744 ------------------------------
po/fil.mini.po | 20 +
po/fr.mini.po | 4258 +++
po/fr.po | 46907 ------------------------------
po/fur.mini.po | 20 +
po/ga.mini.po | 21 +
po/gl.mini.po | 761 +
po/gl.po | 46700 ------------------------------
po/{gu.po => gu.mini.po} | 54191 ++++++++++-------------------------
po/he.mini.po | 761 +
po/he.po | 46684 ------------------------------
po/hi.mini.po | 13772 +++++++++
po/hi.po | 47013 -------------------------------
po/hr.mini.po | 21 +
po/hr.po | 46396 ------------------------------
po/hu.mini.po | 987 +
po/hu.po | 46709 ------------------------------
po/ia.mini.po | 20 +
po/ia.po | 46395 ------------------------------
po/id.mini.po | 728 +
po/id.po | 46691 ------------------------------
po/ilo.mini.po | 20 +
po/ilo.po | 46395 ------------------------------
po/is.mini.po | 761 +
po/is.po | 46684 ------------------------------
po/it.mini.po | 6588 +++++
po/it.po | 46663 ------------------------------
po/{ja.po => ja.mini.po} | 54737 ++++++++++-------------------------
po/ka.mini.po | 761 +
po/ka.po | 46684 ------------------------------
po/kk.mini.po | 20 +
po/kk.po | 46395 ------------------------------
po/km.mini.po | 20 +
po/km.po | 46395 ------------------------------
po/{kn.po => kn.mini.po} | 54156 ++++++++++-------------------------
po/ko.mini.po | 12838 +++++++++
po/ko.po | 46723 ------------------------------
po/kw.mini.po | 21 +
po/kw.po | 46396 ------------------------------
po/kw(a)kkcor.mini.po | 21 +
po/kw(a)kkcor.po | 46396 ------------------------------
po/kw(a)uccor.mini.po | 21 +
po/kw(a)uccor.po | 46396 ------------------------------
po/kw_GB.mini.po | 21 +
po/kw_GB.po | 46396 ------------------------------
po/ky.mini.po | 20 +
po/ky.po | 46395 ------------------------------
po/libvirt.pot | 46394 ------------------------------
po/lt.mini.po | 762 +
po/lt.po | 46685 ------------------------------
po/lv.mini.po | 762 +
po/lv.po | 46685 ------------------------------
po/mai.mini.po | 20 +
po/mai.po | 46395 ------------------------------
po/mk.mini.po | 1138 +
po/mk.po | 46724 ------------------------------
po/{ml.po => ml.mini.po} | 53963 ++++++++++-------------------------
po/mn.mini.po | 20 +
po/mn.po | 46395 ------------------------------
po/{mr.po => mr.mini.po} | 55484 +++++++++++-------------------------
po/ms.mini.po | 189 +
po/ms.po | 46580 ------------------------------
po/my.mini.po | 20 +
po/nb.mini.po | 492 +
po/nb.po | 46667 ------------------------------
po/nds.mini.po | 20 +
po/nds.po | 46395 ------------------------------
po/ne.mini.po | 20 +
po/ne.po | 46395 ------------------------------
po/nl.mini.po | 9868 +++++++
po/nl.po | 47062 -------------------------------
po/nn.mini.po | 761 +
po/nn.po | 46684 ------------------------------
po/nso.mini.po | 761 +
po/nso.po | 46684 ------------------------------
po/{or.po => or.mini.po} | 53161 +++++++++-------------------------
po/{pa.po => pa.mini.po} | 53711 ++++++++++-------------------------
po/pl.mini.po | 10274 +++++++
po/pl.po | 47166 -------------------------------
po/pt.mini.po | 1243 +
po/pt.po | 46587 ------------------------------
po/pt_BR.mini.po | 22821 +++++++++++++++
po/pt_BR.po | 47565 -------------------------------
po/ro.mini.po | 762 +
po/ro.po | 46685 ------------------------------
po/{ru.po => ru.mini.po} | 54065 ++++++++++-------------------------
po/si.mini.po | 761 +
po/si.po | 46684 ------------------------------
po/sk.mini.po | 761 +
po/sk.po | 46684 ------------------------------
po/sl.mini.po | 762 +
po/sl.po | 46685 ------------------------------
po/sq.mini.po | 24 +
po/sq.po | 46399 ------------------------------
po/sr.mini.po | 2203 ++
po/sr.po | 46910 ------------------------------
po/sr(a)latin.mini.po | 2204 ++
po/sr(a)latin.po | 46911 ------------------------------
po/sv.mini.po | 2559 ++
po/sv.po | 46696 ------------------------------
po/{ta.po => ta.mini.po} | 54968 +++++++++++-------------------------
po/{te.po => te.mini.po} | 53427 ++++++++++-------------------------
po/tg.mini.po | 20 +
po/tg.po | 46395 ------------------------------
po/th.mini.po | 761 +
po/th.po | 46684 ------------------------------
po/tr.mini.po | 761 +
po/tr.po | 46684 ------------------------------
po/tw.mini.po | 20 +
po/tw.po | 46395 ------------------------------
po/{uk.po => uk.mini.po} | 62575 +++++++++++++++++------------------------
po/ur.mini.po | 761 +
po/ur.po | 46684 ------------------------------
po/vi.mini.po | 8674 ++++++
po/vi.po | 47171 -------------------------------
po/wba.mini.po | 20 +
po/wba.po | 46395 ------------------------------
po/yo.mini.po | 20 +
po/yo.po | 46395 ------------------------------
po/zanata.xml | 99 -
po/zh_CN.mini.po | 23613 ++++++++++++++++
po/zh_CN.po | 46701 ------------------------------
po/zh_HK.mini.po | 20 +
po/zh_HK.po | 46395 ------------------------------
po/zh_TW.mini.po | 958 +
po/zh_TW.po | 46725 ------------------------------
po/zu.mini.po | 761 +
po/zu.po | 46684 ------------------------------
src/internal.h | 16 +-
src/libvirt-admin.c | 2 +
src/libvirt.c | 2 +
src/util/virgettext.c | 3 +-
tools/virt-host-validate.c | 4 +-
199 files changed, 418787 insertions(+), 4388281 deletions(-)
--
2.14.3
6 years, 6 months
[libvirt] [PATCH 0/6] Split the storage file driver impls from the storage driver backends
by Daniel P. Berrangé
The storage driver backends currently register storage file backends as
a side effect of initialization. This is fine right now while both run
in the same libvirtd process, but in future the storage file backends
will need to run in the hypervisor daemon which will be separate from
the storage daemon. This small series splits them, makin the storage
file backends be registered "on demand"
Daniel P. Berrangé (6):
util: create new virmodule.{c,h} files for dlopen support code
storage: split gluster storage file code from storage driver backend
storage: split fs storage file code from storage driver backend
storage: fix virStorageFileGetBackingStoreStr error handling
util: refactor storage file checks to allow error reporting
storage: create separate loadable modules for storage file drivers
libvirt.spec.in | 4 +
src/driver.c | 133 +-----------
src/driver.h | 3 -
src/libvirt_driver_modules.syms | 1 -
src/libvirt_private.syms | 3 +
src/qemu/qemu_domain.c | 21 +-
src/qemu/qemu_driver.c | 21 +-
src/storage/Makefile.inc.am | 44 ++++
src/storage/storage_backend.c | 3 +-
src/storage/storage_backend_fs.c | 210 +------------------
src/storage/storage_backend_gluster.c | 305 +---------------------------
src/storage/storage_backend_gluster.h | 2 +-
src/storage/storage_file_fs.c | 251 +++++++++++++++++++++++
src/storage/storage_file_fs.h | 29 +++
src/storage/storage_file_gluster.c | 366 ++++++++++++++++++++++++++++++++++
src/storage/storage_file_gluster.h | 27 +++
src/util/Makefile.inc.am | 2 +
src/util/virmodule.c | 163 +++++++++++++++
src/util/virmodule.h | 29 +++
src/util/virstoragefile.c | 123 ++++++++----
src/util/virstoragefile.h | 9 +-
src/util/virstoragefilebackend.c | 72 +++++--
src/util/virstoragefilebackend.h | 9 +-
23 files changed, 1098 insertions(+), 732 deletions(-)
create mode 100644 src/storage/storage_file_fs.c
create mode 100644 src/storage/storage_file_fs.h
create mode 100644 src/storage/storage_file_gluster.c
create mode 100644 src/storage/storage_file_gluster.h
create mode 100644 src/util/virmodule.c
create mode 100644 src/util/virmodule.h
--
2.14.3
6 years, 6 months