[PATCH] qemu_driver.c: Fix domfsinfo for non-PCI device information from guest agent
by Thomas Huth
qemuAgentFSInfoToPublic() currently only sets the devAlias for PCI devices.
However, the QEMU guest agent could also provide the device name in the
"dev" field of the response for other devices instead (well, at least after
fixing another problem in the current QEMU guest agent...). So if creating
the devAlias from the PCI information failed, let's fall back to the name
provided by the guest agent. This helps to fix the empty "Target" fields
that occur when running "virsh domfsinfo" on s390x where CCW devices are
used for the guest instead of PCI devices.
Also add a proper debug message here in case we completely failed to set the
device alias, since this problem here was very hard to debug: The only two
error messages that I've seen were "Unable to get filesystem information"
and "Unable to encode message payload" - which only indicates that something
went wrong in the RPC call. No debug message indicated the real problem, so
I had to learn the hard way why the RPC call failed (it apparently does not
like devAlias left to be NULL) and where the real problem comes from.
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1755075
Signed-off-by: Thomas Huth <thuth(a)redhat.com>
---
src/qemu/qemu_driver.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d185666ed8..e45c61ee20 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -21935,14 +21935,17 @@ qemuAgentFSInfoToPublic(qemuAgentFSInfoPtr agent,
qemuAgentDiskInfoPtr agentdisk = agent->disks[i];
virDomainDiskDefPtr diskDef;
- if (!(diskDef = virDomainDiskByAddress(vmdef,
- &agentdisk->pci_controller,
- agentdisk->bus,
- agentdisk->target,
- agentdisk->unit)))
- continue;
-
- ret->devAlias[i] = g_strdup(diskDef->dst);
+ diskDef = virDomainDiskByAddress(vmdef,
+ &agentdisk->pci_controller,
+ agentdisk->bus,
+ agentdisk->target,
+ agentdisk->unit);
+ if (diskDef != NULL)
+ ret->devAlias[i] = g_strdup(diskDef->dst);
+ else if (agentdisk->devnode != NULL)
+ ret->devAlias[i] = g_strdup(agentdisk->devnode);
+ else
+ VIR_DEBUG("Missing devnode name for '%s'.", ret->mountpoint);
}
return ret;
--
2.18.1
4 years, 3 months
[RESEND][PATCH] migration: fix xml file residual during vm crash with migration
by zhengchuan
>From 935ec812b822ca978631e72bb9b9a5d00df24a42 Mon Sep 17 00:00:00 2001
From: Zheng Chuan <zhengchuan(a)huawei.com>
Date: Mon, 27 Jul 2020 14:39:05 +0800
Subject: [PATCH] migration: fix xml file residual during vm crash with
migration
when migration is cancelled (such as kill -9 vmpid in Src, etc), it could
do virDomainSaveStatus() to save xml file after qemuProcessStop(), which results
in xml residulal.
Fix it by that do not do virDomainSaveStatus() if vm is not active.
Signed-off-by: Zheng Chuan <zhengchuan(a)huawei.com>
---
src/qemu/qemu_migration.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 2c7bf34..d2804ab 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -3073,6 +3073,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver,
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
jobPriv->migParams, priv->job.apiFlags);
+ if (!virDomainObjIsActive(vm))
+ goto done;
+
if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
}
--
1.8.3.1
4 years, 3 months
[PATCH v2 00/17] Allow sparse streams for block devices
by Michal Privoznik
v2 of:
https://www.redhat.com/archives/libvir-list/2020-July/msg00145.html
diff to v1:
- Switch virfdstream to glib (patches 1-6)
- Document the feature in NEWS.rst
- Introduced test cases for virStringIsNull()
- Included what was WIP patch in v1 => patch 16 which ensures block
devices aren't read twice
Michal Prívozník (17):
virfdstream: Use g_autofree in virFDStreamThreadDoRead()
virFDStreamMsgQueuePush: Clear pointer to passed message
virfdstream: Use autoptr for virFDStreamMsg
virfdstream: Use g_new0() instead of VIR_ALLOC()
virfdstream: Use VIR_AUTOCLOSE()
virfdstream: Drop some needless labels
libvirt-storage: Document volume upload/download stream format
virstring: Introduce virStringIsNull()
virfile: Introduce virFileInDataDetectZeroes()
virsh: Pass virshStreamCallbackDataPtr to virshStreamSink() and
virshStreamSkip()
virsh: Track if vol-upload or vol-download work over a block device
virshStreamSkip: Emulate skip for block devices
virfdstream: Allow sparse stream vol-download
virshStreamInData: Handle block devices
virfdstream: Emulate skip for block devices
stream: Don't read block device twice
news: Document sparse streams for block devcies
NEWS.rst | 7 ++
src/libvirt-storage.c | 8 +-
src/libvirt_private.syms | 2 +
src/util/virfdstream.c | 179 ++++++++++++++++++++++-----------------
src/util/virfile.c | 50 +++++++++++
src/util/virfile.h | 5 ++
src/util/virstring.c | 38 +++++++++
src/util/virstring.h | 2 +
tests/virstringtest.c | 47 ++++++++++
tools/virsh-util.c | 90 +++++++++++++++++---
tools/virsh-util.h | 4 +
tools/virsh-volume.c | 23 ++++-
12 files changed, 360 insertions(+), 95 deletions(-)
--
2.26.2
4 years, 4 months
[PATCH v2] examples: Use GLib event loop impl in events.stp
by Han Han
Update the events stap example because the event loop impl is replaced by
GLib based event loop impl after commit 55fe8110.
Signed-off-by: Han Han <hhan(a)redhat.com>
---
examples/systemtap/events.stp | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/examples/systemtap/events.stp b/examples/systemtap/events.stp
index fd4fe4664d..016e2ca048 100644
--- a/examples/systemtap/events.stp
+++ b/examples/systemtap/events.stp
@@ -89,44 +89,34 @@ probe begin {
print_ts("begin");
}
-probe libvirt.event_poll.add_handle {
+probe libvirt.event_glib.add_handle {
print_ts(sprintf("%d + handle %d %d %d", pid(), watch, fd, events));
}
-probe libvirt.event_poll.remove_handle {
+probe libvirt.event_glib.remove_handle {
print_ts(sprintf("%d - handle %d", pid(), watch));
}
-probe libvirt.event_poll.update_handle {
+probe libvirt.event_glib.update_handle {
if (showUpdates)
print_ts(sprintf("%d * handle %d %d", pid(), watch, events));
}
-probe libvirt.event_poll.purge_handle {
- print_ts(sprintf("%d ! handle %d", pid(), watch));
-}
-probe libvirt.event_poll.dispatch_handle {
+probe libvirt.event_glib.dispatch_handle {
if (showDispatch)
print_ts(sprintf("%d > handle %d %d", pid(), watch, events));
}
-probe libvirt.event_poll.add_timeout {
+probe libvirt.event_glib.add_timeout {
print_ts(sprintf("%d + timeout %d %d", pid(), timer, frequency));
}
-probe libvirt.event_poll.remove_timeout {
+probe libvirt.event_glib.remove_timeout {
print_ts(sprintf("%d - timeout %d", pid(), timer));
}
-probe libvirt.event_poll.update_timeout {
+probe libvirt.event_glib.update_timeout {
if (showUpdates)
print_ts(sprintf("%d * timeout %d %d", pid(), timer, frequency));
}
-probe libvirt.event_poll.purge_timeout {
- print_ts(sprintf("%d ! timeout %d", pid(), timer));
-}
-probe libvirt.event_poll.dispatch_timeout {
+probe libvirt.event_glib.dispatch_timeout {
if (showDispatch)
print_ts(sprintf("%d > timeout %d", pid(), timer));
}
-probe libvirt.event_poll.run {
- if (showIter)
- print_ts(sprintf("%d ~ %d %d", pid(), nfds, timeout));
-}
--
2.27.0
4 years, 4 months
[libvirt PATCH 00/16] Add support for persistent mediated devices
by Jonathon Jongsma
This patch series follows the previously-merged series which added support for
transient mediated devices. This series expands mdev support to include
persistent device definitions. Again, it relies on mdevctl as the backend.
It follows the common libvirt pattern of APIs by adding the following new APIs
for node devices:
- virNodeDeviceDefineXML() - defines a persistent device
- virNodeDeviceUndefine() - undefines a persistent device
- virNodeDeviceCreate() - starts a previously-defined device
It also adds virsh commands mapping to these new APIs: nodedev-define,
nodedev-undefine, and nodedev-start.
The method of staying up-to-date with devices defined by mdevctl is currently a
little bit crude due to the fact that mdevctl does not emit any events when new
devices are added or removed. As a workaround, we create a file monitor for the
mdevctl config directory and re-query mdevctl when we detect changes within
that directory. In the future, mdevctl may introduce a more elegant solution.
Jonathon Jongsma (16):
tests: remove extra trailing semicolon
nodedev: introduce concept of 'active' node devices
nodedev: Add ability to filter by active state
virsh: Add --active, --inactive, --all to nodedev-list
nodedev: add ability to list and parse defined mdevs
nodedev: add STOPPED/STARTED lifecycle events
nodedev: add mdevctl devices to node device list
nodedev: handle mdevs that disappear from mdevctl
nodedev: add an mdevctl thread
api: add virNodeDeviceDefineXML()
virsh: add nodedev-define command
api: add virNodeDeviceUndefine()
virsh: Factor out function to find node device
virsh: add nodedev-undefine command
api: add virNodeDeviceCreate()
virsh: add "nodedev-start" command
examples/c/misc/event-test.c | 4 +
include/libvirt/libvirt-nodedev.h | 19 +-
src/conf/node_device_conf.h | 9 +
src/conf/virnodedeviceobj.c | 24 +
src/conf/virnodedeviceobj.h | 7 +
src/driver-nodedev.h | 14 +
src/libvirt-nodedev.c | 115 ++++
src/libvirt_private.syms | 2 +
src/libvirt_public.syms | 6 +
src/node_device/node_device_driver.c | 522 +++++++++++++++++-
src/node_device/node_device_driver.h | 38 ++
src/node_device/node_device_udev.c | 275 ++++++++-
src/remote/remote_driver.c | 3 +
src/remote/remote_protocol.x | 40 +-
src/remote_protocol-structs | 16 +
src/rpc/gendispatch.pl | 1 +
...19_36ea_4111_8f0a_8c9a70e21366-define.argv | 1 +
...19_36ea_4111_8f0a_8c9a70e21366-define.json | 1 +
...39_495e_4243_ad9f_beb3f14c23d9-define.argv | 1 +
...39_495e_4243_ad9f_beb3f14c23d9-define.json | 1 +
...16_1ca8_49ac_b176_871d16c13076-define.argv | 1 +
...16_1ca8_49ac_b176_871d16c13076-define.json | 1 +
tests/nodedevmdevctldata/mdevctl-create.argv | 1 +
.../mdevctl-list-defined.argv | 1 +
.../mdevctl-list-multiple-parents.json | 59 ++
.../mdevctl-list-multiple-parents.out.xml | 39 ++
.../mdevctl-list-multiple.json | 59 ++
.../mdevctl-list-multiple.out.xml | 39 ++
.../mdevctl-list-single-noattr.json | 11 +
.../mdevctl-list-single-noattr.out.xml | 8 +
.../mdevctl-list-single.json | 31 ++
.../mdevctl-list-single.out.xml | 14 +
.../nodedevmdevctldata/mdevctl-undefine.argv | 1 +
tests/nodedevmdevctltest.c | 226 +++++++-
tools/virsh-nodedev.c | 281 ++++++++--
35 files changed, 1783 insertions(+), 88 deletions(-)
create mode 100644 tests/nodedevmdevctldata/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366-define.argv
create mode 100644 tests/nodedevmdevctldata/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366-define.json
create mode 100644 tests/nodedevmdevctldata/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9-define.argv
create mode 100644 tests/nodedevmdevctldata/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9-define.json
create mode 100644 tests/nodedevmdevctldata/mdev_fedc4916_1ca8_49ac_b176_871d16c13076-define.argv
create mode 100644 tests/nodedevmdevctldata/mdev_fedc4916_1ca8_49ac_b176_871d16c13076-define.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-create.argv
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-defined.argv
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-multiple-parents.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-multiple-parents.out.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-multiple.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-multiple.out.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-single-noattr.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-single-noattr.out.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-single.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-list-single.out.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-undefine.argv
--
2.21.3
4 years, 4 months
[PATCH 0/3] batch: don't require checking retvalue of some bitmap ops
by Nikolay Shirokovskiy
Most of bitmap setBit/clearBit/getBit users know that the bitmap index is
not out of bound and thus don't check the return value. More precisely
the stats is next:
Method all check
===================================
virBitmapSetBit 85 14
virBitmapClearBit 15 3
virBitmapGetBit 15 6
where 'all' is the number of all occurences of the method and 'check' is the
number of occurences with 'if (method' pattern.
Thus keeping the retvalue checking requirement produces more
noise then helps. I guess we even can make these function return
void as users can simply compare the index with the bitmap size.
The removing of ignore_value was done by sed together with several manual
editings where methods calls were splitted across two lines.
FILES=`git grep -l 'ignore_value(virBitmapGetBit('`
sed -ibak -re 's/ignore_value\(virBitmapGetBit\((.*)\)\);/virBitmapGetBit(\1\);/' "$FILES"
Nikolay Shirokovskiy (3):
batch: don't require checking retvalue for virBitmapSetBit
batch: don't require checking retvalue for virBitmapClearBit
batch: don't require checking retvalue for virBitmapGetBit
src/conf/capabilities.c | 2 +-
src/conf/checkpoint_conf.c | 2 +-
src/conf/domain_addr.c | 8 ++++----
src/conf/domain_conf.c | 9 ++++-----
src/conf/node_device_conf.c | 2 +-
src/conf/snapshot_conf.c | 2 +-
src/conf/storage_conf.c | 2 +-
src/libxl/libxl_capabilities.c | 2 +-
src/network/bridge_driver.c | 6 +++---
src/qemu/qemu_capabilities.c | 4 ++--
src/qemu/qemu_domain.c | 2 +-
src/qemu/qemu_domain_address.c | 4 ++--
src/qemu/qemu_driver.c | 8 ++++----
src/qemu/qemu_hotplug.c | 6 +++---
src/qemu/qemu_migration_cookie.c | 8 ++++----
src/qemu/qemu_migration_params.c | 28 +++++++++++++---------------
src/qemu/qemu_monitor.c | 2 +-
src/qemu/qemu_slirp.c | 2 +-
src/test/test_driver.c | 2 +-
src/util/virbitmap.h | 6 +++---
src/util/vircommand.c | 2 +-
src/util/virdnsmasq.c | 2 +-
src/util/virhostcpu.c | 2 +-
src/util/virjson.c | 2 +-
src/util/virnetdev.c | 10 +++++-----
src/util/virnuma.c | 4 ++--
src/util/virprocess.c | 4 ++--
src/util/virresctrl.c | 2 +-
src/util/virstoragefile.c | 2 +-
src/vmx/vmx.c | 2 +-
tests/qemumonitorjsontest.c | 2 +-
tests/testutils.c | 2 +-
tests/virbitmaptest.c | 28 ++++++++++++++--------------
tools/virsh-domain.c | 4 ++--
tools/virt-host-validate-common.c | 2 +-
35 files changed, 87 insertions(+), 90 deletions(-)
--
1.8.3.1
4 years, 4 months
[PATCH 0/4] Don't leak /dev/mapper/control to QEMU
by Michal Privoznik
These were sent to the libvirt-security list, where they were reviewed.
And before that, I've sent them to the public list:
https://www.redhat.com/archives/libvir-list/2020-July/msg01500.html
Anyway, I'm resending here for future reference. Patches are merged so
no need to review.
We are still using libdevmapper after these in
src/storage/storage_backend_mpath.c and thus I'm not removing configure
check. But in time for the next release I will look into it.
Michal Prívozník (4):
virdevmapper.c: Join two WITH_DEVMAPPER sections together
virDevMapperGetTargetsImpl: Use VIR_AUTOSTRINGLIST
virdevmapper: Don't use libdevmapper to obtain dependencies
virDevMapperGetTargets: Don't ignore EBADF
po/POTFILES.in | 1 +
src/qemu/qemu_cgroup.c | 2 +-
src/qemu/qemu_domain.c | 4 +-
src/util/virdevmapper.c | 337 +++++++++++++++++++++++++++-------------
4 files changed, 232 insertions(+), 112 deletions(-)
--
2.26.2
4 years, 4 months
[PATCH 0/3] qemu: implementation of transient option for qcow2 file
by Masayoshi Mizuma
Hello,
This patchset tries to implement transient option for qcow2 file.
It gets user available to set <transient/> to the domain xml file like as:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/guest.qcow2'/>
<target dev='vda' bus='virtio'/>
<transient/>
</disk>
Any changes which the Guest does to the disk is dropped when the Guest
is shutdowned.
Masayoshi Mizuma (3):
qemu: implementation of transient option for qcow2 file
testutilsqemu: Assign qemu-img path to driver->qemuImgBinary
qemublocktest: add test of transient option for qcow2 file
src/qemu/qemu_block.c | 71 +++++++++++++++++++
src/qemu/qemu_block.h | 7 ++
src/qemu/qemu_domain.c | 4 ++
src/qemu/qemu_process.c | 3 +
src/qemu/qemu_validate.c | 2 +-
tests/qemublocktest.c | 10 +++
.../xml2json/qcow2-transient-srconly.json | 9 +++
.../xml2json/qcow2-transient.json | 13 ++++
.../xml2json/qcow2-transient.xml | 13 ++++
tests/testutilsqemu.c | 6 +-
10 files changed, 136 insertions(+), 2 deletions(-)
create mode 100644 tests/qemublocktestdata/xml2json/qcow2-transient-srconly.json
create mode 100644 tests/qemublocktestdata/xml2json/qcow2-transient.json
create mode 100644 tests/qemublocktestdata/xml2json/qcow2-transient.xml
--
2.27.0
4 years, 4 months
[libvirt PATCH 000/351] port libvirt to Meson build system
by Pavel Hrdina
So I was finally able to produce the patches to port libvirt to Meson.
Obviously, it is a lot of changes. It might look that some of the
patches could be squashed together but I would rather have it as
separated as possible to make the review not that difficult.
Once we are done with review I suggest to squash all patches to single
patch as it doesn't make sense to keep them separated as it will not be
possible to build complete libvirt code by any of the build systems.
Trying to achieve that would be even more challenging and the review
would me more difficult.
The reasoning behind taking this approach is to have 1:1 conversion from
autotools to Meson where each patch removes that part from autotools. It
serves as a check that nothing is skipped and to make sure that the
conversion is complete.
As probably most of us know Meson is completely different build system
and one of the most challenging things was to deal with the fact that
meson doesn't allow user functions and that everything has to be defined
before it is used.
Patches are available in my Gitlab repo as well:
git clone -b meson https://gitlab.com/phrdina/libvirt.git
and link to Giltab pipeline:
https://gitlab.com/phrdina/libvirt/-/pipelines/167276632
The pipeline is not for the latest version is I tweaked some commit
messages.
Pavel Hrdina (351):
meson: ci: increase git clone depth to 1000
meson: remove automake specific directives
meson: drop driver_module configure argument
meson: drop loader_nvram build option
meson: Makefile: drop cov target
meson: syntax-check: drop Makefile and m4 related checks
meson: m4: drop not relevant m4 files
meson: src/util/virfile: rewrite virFileActivateDirOverrideForProg
meson: tests: remove '.libs' from all relevant paths
meson: introduce meson build files
meson: build everything with PIE
meson: move content from config-post.h to config.h
meson: set windows variables for AI_ADDRCONFIG
meson: generate configmake.h
meson: add packager build options
meson: add test_suite build option
meson: add expensive_tests build option
meson: add test_coverage build option
meson: add static analysis detection
meson: add manywarnings
meson: add compiler warnings
meson: add linker checks
meson: add scripts directory
meson: add include directory
meson: add functions check
meson: add headers check
meson: add symbols check
meson: add types check
meson: add members check
meson: add sizeof check
meson: add programs checks
meson: add iscsiadm as optional program
meson: add acl build dependency
meson: add AppArmor build dependency
meson: add attr build option
meson: add audit build dependency
meson: add readline build option
meson: add bash_completion build options
meson: add blkid build dependency
meson: add capng build dependency
meson: add curl build dependency
meson: add dbus build dependency
meson: add devmapper build dependency
meson: add dlopen build dependency
meson: add firewalld build option
meson: add firewalld_zone build option
meson: add fuse build dependency
meson: add GLib dependency
meson: add glusterfs build dependency
meson: add GnuTLS build dependency
meson: add hal build dependency
meson: add kvm build dependency
meson: add libiscsi build dependency
meson: add macvtap build option
meson: add libnl build dependency
meson: add libparted dependency
meson: add libpcap build option
meson: add libssh build dependency
meson: add libssh2 build dependency
meson: add libxml build dependency
meson: add netcf build options
meson: add nls build dependency
meson: add numactl build dependency
meson: add openwsman build dependency
meson: add parallels-sdk build check
meson: add pciaccess build option
meson: add polkit build option
meson: add rbd build dependency
meson: add sanlock build option
meson: add sasl build dependency
meson: add SELinux build dependency
meson: add thread build dependency
meson: add udev build options
meson: add util build dependency
meson: add virtualport build dependency
meson: add win32 build dependency
meson: add wireshark build dependency
meson: add xdr build dependency
meson: add yajl build dependency
meson: add driver_remote build option
meson: add libvirtd driver build option
meson: add BHyVe build option
meson: add ESX driver build option
meson: add Hyper-V driver build option
meson: add libxl driver build option
meson: add LXC driver build option
meson: add OpenVZ driver build option
meson: add qemu driver build options
meson: add test driver build option
meson: add vbox driver build options
meson: add VMWare driver build option
meson: add Virtuozzo driver build option
meson: add secdriver build options
meson: add network driver build option
meson: add interface driver build option
meson: add secrets driver build option
meson: add node_device driver check
meson: add storage build check
meson: add storage dir build option
meson: add storage disk build option
meson: add storage fs driver build option
meson: add storage gluster build option
meson: add storage iscsi build option
meson: add storage iscsi-direct build option
meson: add storage lvm build options
meson: add storage mpath build options
meson: add storage rbd build option
meson: add storage SCSI build option
meson: add storage sheepdog build option
meson: add storage vstorage build option
meson: add storage ZFS build option
meson: add chrdev_lock_files build option
meson: add debug_logs build option
meson: add default_editor build option
meson: add driver_modules build check
meson: add dtrace build dependency
meson: add host_validate build option
meson: add init_script build option
meson: add login_shell build option
meson: add nss build option
meson: add numad build option
meson: add nwfilter build check
meson: add pm_utils build option
meson: add sysctl_config build option
meson: add tls_priority option
meson: add runutf8 env vars and meson-python.sh script
meson: introduce src directory
meson: src: define secdriver_dep
meson: src: build dtrace files
meson: src: build libvirt_util.a static lib
meson: src: build libvirt_conf.a static lib
meson: src: build libvirt_rpc static libs
meson: src: build libvirt_access.a static library
meson: src: build libvirt_driver_admin.a static lib
meson: src: build libvirt_cpu.a static library
meson: src: build libvirt_vmx.a static library
meson: src: build libvirt_vmware.a static library
meson: src: build libvirt_driver_esx.a static library
meson: src: build libvirt_driver_hyperv.a static library
meson: src: build libvirt_hypervisor.a static library
meson: src: build libvirt_openvz.a static library
meson: src: build libvirt_test.a static library
meson: src: build libvirt_driver_lock.a static library
meson: src: build libvirt_driver_log.a static library
meson: src: build libvirt_driver_remote.a static library
meson: src: build libvirt_security_manager.a static library
meson: introduce datatypes sources
meson: src: build libvirt_driver.a static library
meson: scripts: introduce gen-def-files.sh script
meson: scripts: introduce gen-sym-files.sh script
meson: src: build libvirt.syms and libvirt.def symbol files
meson: src: build libvirt.so library
meson: src: install cpu_map data
meson: src: build libvirt-qemu.so library
meson: src: build libvirt-lxc.so library
meson: src: build libvirt-admin.so library
meson: src: build libvirt_driver_bhyve_impl.a static library
meson: src: build libvirt_driver_libxl_impl.a static library
meson: src: build liblockd_impl.a static library
meson: src: build libvirt_driver_lxc_impl.a static library
meson: src: build libvirt_driver_network_impl.a static library
meson: src: build libvirt_driver_nodedev_impl.a static library
meson: src: build libvirt_driver_nwfilter_impl.a static library
meson: src: build libvirt_driver_qemu_impl.a static library
meson: src: build libvirt_storage_driver_impl.a static library
meson: src: build libvirt_driver_vbox_impl.a static library
meson: src: build libvirt_driver_vz_impl.a static library
meson: src: add code to build shared modules
meson: src: build libvirt_driver_bhyve.so shared module
meson: src: build libvirt_driver_interface.so shared module
meson: src: build libvirt_driver_libxl.so shared module
meson: src: build libvirt_driver_lxc.so shared module
meson: src: build libvirt_driver_network.so shared module
meson: src: build libvirt_driver_nodedev.so shared module
meson: src: build libvirt_driver_nwfilter.so shared module
meson: src: build libvirt_driver_qemu.so shared module
meson: src: build libvirt_driver_secret.so shared module
meson: src: build libvirt_driver_vbox.so shared module
meson: src: build libvirt_driver_vz.so shared module
meson: src: build lockd.so shared module
meson: src: build sanlock.so shared module
meson: src: build libvirt_storage_driver.so shared module
meson: src: build libvirt_storage_backedn_fs.so shared module
meson: src: build libvirt_storage_file_fs.so shared module
meson: src: build libvirt_storage_backend_logical.so shared module
meson: src: build libvirt_storage_backend_iscsi.so shared module
meson: src: build libvirt_storage_backend_iscsi_direct.so shared
module
meson: src: build libvirt_storage_backend_scsi.so shared module
meson: src: build libvirt_storage_backend_mpath.so shared module
meson: src: build libvirt_storage_backend_disk.so shared module
meson: src: build libvirt_storage_backend_rbd.so shared module
meson: src: build libvirt_storage_backend_sheepdog.so shared module
meson: src: build libvirt_storage_*_gluster.so shared modules
meson: src: build libvirt_storage_backend_zfs.so shared module
meson: src: build libvirt_storage_backend_vstorage.so shared module
meson: src: prepare sources for libvirt daemons
meson: src: add support for building daemon binaries
meson: src: build virtbhyved daemon binary
meson: src: build virtinterfaced daemon binary
meson: src: build virtxend daemon binary
meson: src: build virtlockd daemon binary
meson: src: build virtlogd daemon binary
meson: src: build virtlxcd daemon binary
meson: src: build virtnetworkd daemon binary
meson: src: build virtnodedevd daemon binary
meson: src: build virtnwfilterd daemon binary
meson: src: build virtqemud daemon binary
meson: src: build libvirtd daemon binary
meson: src: build virtproxyd daemon binary
meson: src: build virtsecretd daemon binary
meson: src: build virtstoraged daemon binary
meson: src: build virtvboxd daemon binary
meson: src: build virtvzd daemon binary
meson: src: add support for building helpers
meson: src: build libvirt_sanlock_helper binary
meson: src: build libvirt_lxc binary
meson: src: build libvirt_leaseshelper binary
meson: src: build virt-qemu-run binary
meson: src: build virt-aa-helper binary
meson: src: build libvirt_parthelper binary
meson: src: build libvirt_iohelper binary
meson: src: add support for installing libvirt conf and augeas files
meson: src: install libvirt daemon conf and augeas files
meson: src: generate libvirt daemon augeas test files
meson: src: generate libvirt daemon conf and augeas files
meson: src: generate systemd unit files for libvirt daemons
meson: src: generate openrc init files
meson: src: install libvirt daemon sysconf files
meson: src: install empty directories
meson: src: generate logrotate files
meson: src/access: generate org.libvirt.api.policy
meson: src/access: generate libvirt_access*.xml files
meson: src/network: install default network xml
meson: src/network: install firewalld zone file
meson: src/nwfilter: install nwfilter XML files
meson: src/remote: install libvirt sysctl config file
meson: src/remote: install polkit files
meson: src/remote: install libvirtd sasl file
meson: src/security: install apparmor profile files
meson: src: add check-symfile test
meson: src: add check-symsorting
meson: src: add check-drivername test
meson: src: add check-driverimpls test
meson: src: add check-aclrules test
meson: src/access: add check-aclperms test
meson: src: add check-augeas test
meson: src: build libvirt_functions.stp
meson: src: add check*protocol tests
meson: src: add check-admin-symfile test
meson: src: add check-admin-symsorting test
meson: src: add check-admin-drivername test
meson: src: configure pkg-config files used by run script
meson: add tools directory
meson: tools: build libvirt_shell.a static library
meson: tools: build virt-host-validate binary
meson: tools: build virt-login-shell binary
meson: tools: build virt-login-shell-helper binary
meson: tools: build virsh_win_icon object file
meson: tools: build virsh binary
meson: tools: build virt-admin binary
meson: tools: generate virt-xml-validate script
meson: tools: generate virt-pki-validate script
meson: tools: generate virt-sanlock-cleanup script
meson: tools: generate libvirt-guests.sh script
meson: tools: install virt-login-shell.conf
meson: tools: install libvirt-guests sysconf file
meson: tools: generate libvirt-guests.service systemd unit
meson: tools: install bash-completion files
meson: tools: introduce nss directory
meson: tools: build libnss_libvirt_impl.a static library
meson: tools: build libnss_libvirt_guest_impl.a static library
meson: tools: build libnss_libvirt.so shared library
meson: tools: build libnss_libvirt_guest.so shared_library
meson: tools: introduce wireshark directory
meson: tools: modify genxdrstub to work with meson
meson: tools/wireshark: generate protocol header files
meson: tools/wireshark: build libvirt.so wireshark module
meson: introduce tests directory
meson: tests: build mock shared modules
meson: tests: built utils static libraries
meson: tests: build commandhelper binary
meson: tests: build fake ssh binary
meson: tests: add test environment variables
meson: tests: build shared libraries
meson: tests: add test binaries build support
meson: tests: introduce generic tests
meson: tests: add linux specific tests
meson: tests: add bhyve specific tests
meson: tests: add dbus specific tests
meson: tests: add ESX specific tests
meson: tests: add libvirtd specific tests
meson: tests: add libxl specific tests
meson: tests: add lxc specific tests
meson: tests: add network specific tests
meson: tests: add node device specific tests
meson: tests: add nss specific tests
meson: tests: add nwfilter specific tests
meson: tests: add openvz specific tests
meson: tests: add qemu specific tests
meson: tests: add remote specific tests
meson: tests: add selinux specific tests
meson: tests: add storage specific tests
meson: tests: add storage_fs specific tests
meson: tests: add storage_sheepdog specific tests
meson: tests: add vbox specific tests
meson: tests: add vmware specific tests
meson: tests: add vmx specific tests
meson: tests: add yajl specific tests
meson: tests: add helper binaries build support
meson: tests: build helper binaries
meson: tests: add test scripts
meson: tests: add file access test setup
meson: tests: add valgrind test setup
meson: examples: build and install example files
meson: po: introduce libvirt translation
meson: docs: introduce docs directory
meson: docs: build api XML files
meson: docs: generate docs timestamp
meson: docs: generate aclperms.htmlinc
meson: docs: introduce docs_rst2html_gen generator
meson: docs: introduce meson-html-gen.py helper
meson: docs: introduce XSL files
meson: docs: build *.html files from *.html.in files
meson: docs: build *.html files from *.rst files
meson: docs: build hvsupport.html
meson: docs: build news.html from news.xml
meson: docs: copy asset data to build dir
meson: docs/fonts: install font files
meson: docs/html: generate libvirt API documentation
meson: docs/html: generate admin,lxc and qemu API documentation
meson: docs/internals: build html files
meson: docs/js: install javascript files
meson: docs/kbase: build html files
meson: docs/logos: install logo files
meson: docs/manpages: install man pages
meson: docs/schemas: install RNG schemas
meson: docs/html: add html test
meson: install pkgconfig files
meson: generate and distribute spec files and AUTHORS
meson: generate run helper
meson: generate developer tooling files
meson: add syntax-check
meson: update spec file to use meson
meson: add rule to build and install only web documentation
meson: drop remaining bits from Makefile.am
meson: remove unused bits from GNUmakefile
meson: drop all unused bits from configure.ac
meson: now we can drop all autoconf related gitignore lines
meson: adjust our documentation to mention meson instead of autoconf
meson: update .gitlab-ci.yml file
meson: .gitlab-ci.yml: switch armv7l build to Debian 10
.gitignore | 21 -
.gitlab-ci.yml | 71 +-
CONTRIBUTING.rst | 9 +-
GNUmakefile | 74 -
Makefile.am | 180 --
autogen.sh | 53 -
build-aux/Makefile.in | 9 +
.../Makefile.nonreentrant | 0
build-aux/meson.build | 30 +
build-aux/syntax-check.mk | 120 +-
ci/aarch64-linux-gnu.meson | 11 +
ci/arm-linux-gnueabi.meson | 11 +
ci/arm-linux-gnueabihf.meson | 11 +
ci/cirrus/build.yml | 12 +-
ci/cirrus/libvirt-freebsd-12.vars | 4 +-
ci/cirrus/libvirt-macos-1015.vars | 4 +-
ci/containers/libvirt-centos-7.Dockerfile | 2 +-
ci/containers/libvirt-centos-8.Dockerfile | 4 +-
.../libvirt-centos-stream.Dockerfile | 4 +-
...libvirt-debian-10-cross-aarch64.Dockerfile | 5 +-
.../libvirt-debian-10-cross-armv6l.Dockerfile | 6 +-
.../libvirt-debian-10-cross-armv7l.Dockerfile | 6 +-
.../libvirt-debian-10-cross-i686.Dockerfile | 5 +-
.../libvirt-debian-10-cross-mips.Dockerfile | 5 +-
...ibvirt-debian-10-cross-mips64el.Dockerfile | 5 +-
.../libvirt-debian-10-cross-mipsel.Dockerfile | 5 +-
...libvirt-debian-10-cross-ppc64le.Dockerfile | 5 +-
.../libvirt-debian-10-cross-s390x.Dockerfile | 5 +-
ci/containers/libvirt-debian-10.Dockerfile | 4 +-
...ibvirt-debian-sid-cross-aarch64.Dockerfile | 5 +-
...libvirt-debian-sid-cross-armv6l.Dockerfile | 6 +-
...libvirt-debian-sid-cross-armv7l.Dockerfile | 6 +-
.../libvirt-debian-sid-cross-i686.Dockerfile | 5 +-
...bvirt-debian-sid-cross-mips64el.Dockerfile | 5 +-
...libvirt-debian-sid-cross-mipsel.Dockerfile | 6 +-
...ibvirt-debian-sid-cross-ppc64le.Dockerfile | 5 +-
.../libvirt-debian-sid-cross-s390x.Dockerfile | 5 +-
ci/containers/libvirt-debian-sid.Dockerfile | 4 +-
ci/containers/libvirt-fedora-31.Dockerfile | 4 +-
ci/containers/libvirt-fedora-32.Dockerfile | 4 +-
...rt-fedora-rawhide-cross-mingw32.Dockerfile | 4 +-
...rt-fedora-rawhide-cross-mingw64.Dockerfile | 4 +-
.../libvirt-fedora-rawhide.Dockerfile | 4 +-
ci/containers/libvirt-opensuse-151.Dockerfile | 2 +-
ci/containers/libvirt-ubuntu-1804.Dockerfile | 2 +-
ci/containers/libvirt-ubuntu-2004.Dockerfile | 4 +-
ci/i686-linux-gnu.meson | 11 +
ci/mips-linux-gnu.meson | 11 +
ci/mips64el-linux-gnuabi64.meson | 11 +
ci/mipsel-linux-gnu.meson | 11 +
ci/powerpc64le-linux-gnu.meson | 11 +
ci/s390x-linux-gnu.meson | 11 +
config-post.h => config.h | 25 +-
configmake.h.in | 16 +
configure.ac | 1063 -------
docs/Makefile.am | 522 ----
docs/advanced-tests.rst | 14 +-
docs/best-practices.rst | 2 +-
docs/committer-guidelines.rst | 6 +-
docs/compiling.html.in | 40 +-
docs/fonts/meson.build | 24 +
docs/hacking.rst | 4 +-
docs/html/meson.build | 101 +
docs/internals/meson.build | 35 +
docs/js/meson.build | 13 +
docs/kbase/meson.build | 44 +
docs/logging.html.in | 2 +-
docs/logos/meson.build | 31 +
docs/manpages/{index.rst => index.rst.in} | 0
.../{libvirtd.rst => libvirtd.rst.in} | 0
docs/manpages/meson.build | 129 +
docs/manpages/{virsh.rst => virsh.rst.in} | 0
.../{virt-admin.rst => virt-admin.rst.in} | 0
...validate.rst => virt-host-validate.rst.in} | 0
...ogin-shell.rst => virt-login-shell.rst.in} | 0
...-validate.rst => virt-pki-validate.rst.in} | 0
...virt-qemu-run.rst => virt-qemu-run.rst.in} | 0
...leanup.rst => virt-sanlock-cleanup.rst.in} | 0
...-validate.rst => virt-xml-validate.rst.in} | 0
.../{virtlockd.rst => virtlockd.rst.in} | 0
.../{virtlogd.rst => virtlogd.rst.in} | 0
docs/meson.build | 319 +++
docs/schemas/meson.build | 26 +
docs/strategy.html.in | 27 +-
docs/windows.html.in | 18 +-
examples/Makefile.am | 135 -
examples/c/admin/meson.build | 27 +
examples/c/domain/meson.build | 24 +
examples/c/meson.build | 3 +
examples/c/misc/meson.build | 22 +
examples/meson.build | 7 +
examples/polkit/meson.build | 1 +
examples/sh/meson.build | 1 +
examples/systemtap/lock-debug.stp | 2 +-
examples/systemtap/meson.build | 9 +
examples/xml/meson.build | 2 +
examples/xml/storage/meson.build | 15 +
examples/xml/test/meson.build | 14 +
include/libvirt/Makefile.am | 28 -
include/libvirt/meson.build | 36 +
include/meson.build | 3 +
libvirt.spec.in | 203 +-
m4/virt-acl.m4 | 37 -
m4/virt-apparmor.m4 | 41 -
m4/virt-arg.m4 | 154 --
m4/virt-attr.m4 | 13 -
m4/virt-audit.m4 | 31 -
m4/virt-bash-completion.m4 | 70 -
m4/virt-blkid.m4 | 30 -
m4/virt-capng.m4 | 30 -
m4/virt-chrdev-lock-files.m4 | 52 -
m4/virt-compile-pie.m4 | 35 -
m4/virt-compile-warnings.m4 | 255 --
m4/virt-curl.m4 | 38 -
m4/virt-dbus.m4 | 41 -
m4/virt-debug.m4 | 33 -
m4/virt-default-editor.m4 | 32 -
m4/virt-devmapper.m4 | 32 -
m4/virt-dlopen.m4 | 45 -
m4/virt-driver-bhyve.m4 | 56 -
m4/virt-driver-esx.m4 | 57 -
m4/virt-driver-hyperv.m4 | 47 -
m4/virt-driver-interface.m4 | 49 -
m4/virt-driver-libvirtd.m4 | 33 -
m4/virt-driver-libxl.m4 | 74 -
m4/virt-driver-lxc.m4 | 74 -
m4/virt-driver-modules.m4 | 53 -
m4/virt-driver-network.m4 | 51 -
m4/virt-driver-openvz.m4 | 42 -
m4/virt-driver-qemu.m4 | 132 -
m4/virt-driver-remote.m4 | 48 -
m4/virt-driver-test.m4 | 33 -
m4/virt-driver-vbox.m4 | 44 -
m4/virt-driver-vmware.m4 | 33 -
m4/virt-driver-vz.m4 | 47 -
m4/virt-dtrace.m4 | 45 -
m4/virt-external-programs.m4 | 106 -
m4/virt-firewalld-zone.m4 | 45 -
m4/virt-firewalld.m4 | 43 -
m4/virt-fuse.m4 | 30 -
m4/virt-glib.m4 | 36 -
m4/virt-gluster.m4 | 32 -
m4/virt-gnutls.m4 | 30 -
m4/virt-hal.m4 | 30 -
m4/virt-host-validate.m4 | 43 -
m4/virt-init-script.m4 | 61 -
m4/virt-lib.m4 | 386 ---
m4/virt-libiscsi.m4 | 30 -
m4/virt-libnl.m4 | 47 -
m4/virt-libpcap.m4 | 62 -
m4/virt-libssh.m4 | 51 -
m4/virt-libxml.m4 | 36 -
m4/virt-linker-no-indirect.m4 | 32 -
m4/virt-linker-no-undefined.m4 | 32 -
m4/virt-linker-relro.m4 | 35 -
m4/virt-loader-nvram.m4 | 49 -
m4/virt-login-shell.m4 | 43 -
m4/virt-macvtap.m4 | 56 -
m4/virt-manywarnings.m4 | 339 ---
m4/virt-netcf.m4 | 30 -
m4/virt-nls.m4 | 72 -
m4/virt-nss.m4 | 86 -
m4/virt-numactl.m4 | 34 -
m4/virt-numad.m4 | 58 -
m4/virt-nwfilter.m4 | 32 -
m4/virt-openwsman.m4 | 30 -
m4/virt-parted.m4 | 38 -
m4/virt-pciaccess.m4 | 30 -
m4/virt-pm-utils.m4 | 45 -
m4/virt-polkit.m4 | 62 -
m4/virt-pthread.m4 | 58 -
m4/virt-readline.m4 | 86 -
m4/virt-result.m4 | 42 -
m4/virt-sanlock.m4 | 47 -
m4/virt-sasl.m4 | 30 -
m4/virt-secdriver-apparmor.m4 | 50 -
m4/virt-secdriver-selinux.m4 | 43 -
m4/virt-selinux.m4 | 47 -
m4/virt-ssh2.m4 | 30 -
m4/virt-storage-dir.m4 | 33 -
m4/virt-storage-disk.m4 | 58 -
m4/virt-storage-fs.m4 | 89 -
m4/virt-storage-gluster.m4 | 43 -
m4/virt-storage-iscsi-direct.m4 | 44 -
m4/virt-storage-iscsi.m4 | 50 -
m4/virt-storage-lvm.m4 | 90 -
m4/virt-storage-mpath.m4 | 53 -
m4/virt-storage-rbd.m4 | 62 -
m4/virt-storage-scsi.m4 | 36 -
m4/virt-storage-sheepdog.m4 | 56 -
m4/virt-storage-vstorage.m4 | 73 -
m4/virt-storage-zfs.m4 | 56 -
m4/virt-sysctl.m4 | 43 -
m4/virt-tls-priority.m4 | 33 -
m4/virt-udev.m4 | 36 -
m4/virt-virtualport.m4 | 65 -
m4/virt-warnings.m4 | 115 -
m4/virt-win-common.m4 | 42 -
m4/virt-win-mingw.m4 | 28 -
m4/virt-win-symbols.m4 | 40 -
m4/virt-win-windres.m4 | 36 -
m4/virt-wireshark.m4 | 71 -
m4/virt-xdr.m4 | 40 -
m4/virt-yajl.m4 | 42 -
meson.build | 2461 +++++++++++++++++
meson_options.txt | 104 +
po/Makefile.am | 94 -
po/meson.build | 35 +
run.in | 4 +-
scripts/apibuild.py | 26 +-
scripts/check-augeas.sh | 12 +
scripts/check-file-access.py | 24 +-
scripts/check-remote-protocol.py | 75 +-
scripts/gen-def-files.sh | 5 +
scripts/gen-sym-files.sh | 15 +
scripts/install-dirs.sh | 5 +
scripts/install-symlink.sh | 7 +
scripts/meson-change-perms.sh | 6 +
scripts/meson-dist.sh | 6 +
scripts/meson-gen-authors.sh | 4 +
scripts/meson-html-gen.py | 49 +
scripts/meson-install-web.py | 10 +
scripts/meson-python.sh | 3 +
scripts/meson-timestamp.sh | 8 +
scripts/meson.build | 40 +
src/Makefile.am | 693 -----
src/access/Makefile.inc.am | 153 -
src/access/meson.build | 121 +
src/admin/Makefile.inc.am | 146 -
src/admin/meson.build | 114 +
src/bhyve/Makefile.inc.am | 106 -
src/bhyve/meson.build | 62 +
src/conf/Makefile.inc.am | 191 --
src/conf/meson.build | 110 +
src/cpu/Makefile.inc.am | 27 -
src/cpu/meson.build | 21 +
src/cpu_map/Makefile.inc.am | 80 -
src/cpu_map/meson.build | 75 +
src/driver.c | 2 +-
src/esx/Makefile.inc.am | 91 -
src/esx/meson.build | 67 +
src/hyperv/Makefile.inc.am | 59 -
src/hyperv/meson.build | 43 +
src/hypervisor/Makefile.inc.am | 20 -
src/hypervisor/meson.build | 23 +
src/interface/Makefile.inc.am | 125 -
src/interface/meson.build | 64 +
src/libvirt-lxc.pc.in | 2 +-
src/libvirt-qemu.pc.in | 2 +-
src/libvirt.pc.in | 2 +-
src/libxl/Makefile.inc.am | 163 --
src/libxl/meson.build | 89 +
src/locking/Makefile.inc.am | 298 --
src/locking/lock_manager.c | 2 +-
src/locking/meson.build | 249 ++
src/logging/Makefile.inc.am | 147 -
src/logging/meson.build | 100 +
src/lxc/Makefile.inc.am | 293 --
src/lxc/meson.build | 190 ++
src/meson.build | 969 +++++++
src/network/Makefile.inc.am | 197 --
src/network/{default.xml => default.xml.in} | 0
src/network/meson.build | 129 +
src/node_device/Makefile.inc.am | 151 -
src/node_device/meson.build | 77 +
src/nwfilter/Makefile.inc.am | 134 -
src/nwfilter/meson.build | 73 +
src/nwfilter/xml/meson.build | 22 +
src/openvz/Makefile.inc.am | 30 -
src/openvz/meson.build | 28 +
src/qemu/Makefile.inc.am | 268 --
src/{ => qemu}/libvirt_qemu_probes.d | 0
src/qemu/meson.build | 173 ++
src/remote/Makefile.inc.am | 490 ----
src/remote/meson.build | 288 ++
...n.target.in => virt-guest-shutdown.target} | 0
src/rpc/Makefile.inc.am | 144 -
src/rpc/meson.build | 136 +
src/secret/Makefile.inc.am | 110 -
src/secret/meson.build | 53 +
src/security/Makefile.inc.am | 142 -
src/security/apparmor/meson.build | 38 +
.../usr.lib.libvirt.virt-aa-helper.local | 1 +
src/security/meson.build | 57 +
src/storage/Makefile.inc.am | 476 ----
src/storage/meson.build | 306 ++
src/storage/storage_backend.c | 2 +-
src/test/Makefile.inc.am | 28 -
src/test/meson.build | 26 +
src/util/Makefile.inc.am | 318 ---
src/util/meson.build | 212 ++
src/util/virfile.c | 34 +-
src/util/virstoragefilebackend.c | 2 +-
src/vbox/Makefile.inc.am | 138 -
src/vbox/meson.build | 78 +
src/vmware/Makefile.inc.am | 29 -
src/vmware/meson.build | 26 +
src/vmx/Makefile.inc.am | 24 -
src/vmx/meson.build | 28 +
src/vz/Makefile.inc.am | 117 -
src/vz/meson.build | 68 +
tests/Makefile.am | 1571 -----------
tests/meson.build | 686 +++++
tests/securityselinuxlabeltest.c | 2 +-
tests/securityselinuxtest.c | 2 +-
tests/shunloadtest.c | 4 +-
tests/testutils.c | 2 +-
tests/testutils.h | 2 +-
tests/viridentitytest.c | 2 +-
tests/virsh-optparse | 58 +-
tests/virsh-schedinfo | 12 +-
tests/virt-aa-helper-test | 2 +-
tests/virtestmock.c | 2 +-
tools/Makefile.am | 529 ----
tools/bash-completion/meson.build | 13 +
tools/meson.build | 292 ++
tools/nss/meson.build | 92 +
tools/wireshark/meson.build | 3 +
tools/wireshark/src/libvirt/meson.build | 20 +
tools/wireshark/src/meson.build | 17 +
tools/wireshark/util/genxdrstub.pl | 9 +-
321 files changed, 9526 insertions(+), 15979 deletions(-)
delete mode 100644 GNUmakefile
delete mode 100644 Makefile.am
delete mode 100755 autogen.sh
create mode 100644 build-aux/Makefile.in
rename Makefile.nonreentrant => build-aux/Makefile.nonreentrant (100%)
create mode 100644 build-aux/meson.build
create mode 100644 ci/aarch64-linux-gnu.meson
create mode 100644 ci/arm-linux-gnueabi.meson
create mode 100644 ci/arm-linux-gnueabihf.meson
create mode 100644 ci/i686-linux-gnu.meson
create mode 100644 ci/mips-linux-gnu.meson
create mode 100644 ci/mips64el-linux-gnuabi64.meson
create mode 100644 ci/mipsel-linux-gnu.meson
create mode 100644 ci/powerpc64le-linux-gnu.meson
create mode 100644 ci/s390x-linux-gnu.meson
rename config-post.h => config.h (65%)
create mode 100644 configmake.h.in
delete mode 100644 configure.ac
delete mode 100644 docs/Makefile.am
create mode 100644 docs/fonts/meson.build
create mode 100644 docs/html/meson.build
create mode 100644 docs/internals/meson.build
create mode 100644 docs/js/meson.build
create mode 100644 docs/kbase/meson.build
create mode 100644 docs/logos/meson.build
rename docs/manpages/{index.rst => index.rst.in} (100%)
rename docs/manpages/{libvirtd.rst => libvirtd.rst.in} (100%)
create mode 100644 docs/manpages/meson.build
rename docs/manpages/{virsh.rst => virsh.rst.in} (100%)
rename docs/manpages/{virt-admin.rst => virt-admin.rst.in} (100%)
rename docs/manpages/{virt-host-validate.rst => virt-host-validate.rst.in} (100%)
rename docs/manpages/{virt-login-shell.rst => virt-login-shell.rst.in} (100%)
rename docs/manpages/{virt-pki-validate.rst => virt-pki-validate.rst.in} (100%)
rename docs/manpages/{virt-qemu-run.rst => virt-qemu-run.rst.in} (100%)
rename docs/manpages/{virt-sanlock-cleanup.rst => virt-sanlock-cleanup.rst.in} (100%)
rename docs/manpages/{virt-xml-validate.rst => virt-xml-validate.rst.in} (100%)
rename docs/manpages/{virtlockd.rst => virtlockd.rst.in} (100%)
rename docs/manpages/{virtlogd.rst => virtlogd.rst.in} (100%)
create mode 100644 docs/meson.build
create mode 100644 docs/schemas/meson.build
delete mode 100644 examples/Makefile.am
create mode 100644 examples/c/admin/meson.build
create mode 100644 examples/c/domain/meson.build
create mode 100644 examples/c/meson.build
create mode 100644 examples/c/misc/meson.build
create mode 100644 examples/meson.build
create mode 100644 examples/polkit/meson.build
create mode 100644 examples/sh/meson.build
create mode 100644 examples/systemtap/meson.build
create mode 100644 examples/xml/meson.build
create mode 100644 examples/xml/storage/meson.build
create mode 100644 examples/xml/test/meson.build
delete mode 100644 include/libvirt/Makefile.am
create mode 100644 include/libvirt/meson.build
create mode 100644 include/meson.build
delete mode 100644 m4/virt-acl.m4
delete mode 100644 m4/virt-apparmor.m4
delete mode 100644 m4/virt-arg.m4
delete mode 100644 m4/virt-attr.m4
delete mode 100644 m4/virt-audit.m4
delete mode 100644 m4/virt-bash-completion.m4
delete mode 100644 m4/virt-blkid.m4
delete mode 100644 m4/virt-capng.m4
delete mode 100644 m4/virt-chrdev-lock-files.m4
delete mode 100644 m4/virt-compile-pie.m4
delete mode 100644 m4/virt-compile-warnings.m4
delete mode 100644 m4/virt-curl.m4
delete mode 100644 m4/virt-dbus.m4
delete mode 100644 m4/virt-debug.m4
delete mode 100644 m4/virt-default-editor.m4
delete mode 100644 m4/virt-devmapper.m4
delete mode 100644 m4/virt-dlopen.m4
delete mode 100644 m4/virt-driver-bhyve.m4
delete mode 100644 m4/virt-driver-esx.m4
delete mode 100644 m4/virt-driver-hyperv.m4
delete mode 100644 m4/virt-driver-interface.m4
delete mode 100644 m4/virt-driver-libvirtd.m4
delete mode 100644 m4/virt-driver-libxl.m4
delete mode 100644 m4/virt-driver-lxc.m4
delete mode 100644 m4/virt-driver-modules.m4
delete mode 100644 m4/virt-driver-network.m4
delete mode 100644 m4/virt-driver-openvz.m4
delete mode 100644 m4/virt-driver-qemu.m4
delete mode 100644 m4/virt-driver-remote.m4
delete mode 100644 m4/virt-driver-test.m4
delete mode 100644 m4/virt-driver-vbox.m4
delete mode 100644 m4/virt-driver-vmware.m4
delete mode 100644 m4/virt-driver-vz.m4
delete mode 100644 m4/virt-dtrace.m4
delete mode 100644 m4/virt-external-programs.m4
delete mode 100644 m4/virt-firewalld-zone.m4
delete mode 100644 m4/virt-firewalld.m4
delete mode 100644 m4/virt-fuse.m4
delete mode 100644 m4/virt-glib.m4
delete mode 100644 m4/virt-gluster.m4
delete mode 100644 m4/virt-gnutls.m4
delete mode 100644 m4/virt-hal.m4
delete mode 100644 m4/virt-host-validate.m4
delete mode 100644 m4/virt-init-script.m4
delete mode 100644 m4/virt-lib.m4
delete mode 100644 m4/virt-libiscsi.m4
delete mode 100644 m4/virt-libnl.m4
delete mode 100644 m4/virt-libpcap.m4
delete mode 100644 m4/virt-libssh.m4
delete mode 100644 m4/virt-libxml.m4
delete mode 100644 m4/virt-linker-no-indirect.m4
delete mode 100644 m4/virt-linker-no-undefined.m4
delete mode 100644 m4/virt-linker-relro.m4
delete mode 100644 m4/virt-loader-nvram.m4
delete mode 100644 m4/virt-login-shell.m4
delete mode 100644 m4/virt-macvtap.m4
delete mode 100644 m4/virt-manywarnings.m4
delete mode 100644 m4/virt-netcf.m4
delete mode 100644 m4/virt-nls.m4
delete mode 100644 m4/virt-nss.m4
delete mode 100644 m4/virt-numactl.m4
delete mode 100644 m4/virt-numad.m4
delete mode 100644 m4/virt-nwfilter.m4
delete mode 100644 m4/virt-openwsman.m4
delete mode 100644 m4/virt-parted.m4
delete mode 100644 m4/virt-pciaccess.m4
delete mode 100644 m4/virt-pm-utils.m4
delete mode 100644 m4/virt-polkit.m4
delete mode 100644 m4/virt-pthread.m4
delete mode 100644 m4/virt-readline.m4
delete mode 100644 m4/virt-result.m4
delete mode 100644 m4/virt-sanlock.m4
delete mode 100644 m4/virt-sasl.m4
delete mode 100644 m4/virt-secdriver-apparmor.m4
delete mode 100644 m4/virt-secdriver-selinux.m4
delete mode 100644 m4/virt-selinux.m4
delete mode 100644 m4/virt-ssh2.m4
delete mode 100644 m4/virt-storage-dir.m4
delete mode 100644 m4/virt-storage-disk.m4
delete mode 100644 m4/virt-storage-fs.m4
delete mode 100644 m4/virt-storage-gluster.m4
delete mode 100644 m4/virt-storage-iscsi-direct.m4
delete mode 100644 m4/virt-storage-iscsi.m4
delete mode 100644 m4/virt-storage-lvm.m4
delete mode 100644 m4/virt-storage-mpath.m4
delete mode 100644 m4/virt-storage-rbd.m4
delete mode 100644 m4/virt-storage-scsi.m4
delete mode 100644 m4/virt-storage-sheepdog.m4
delete mode 100644 m4/virt-storage-vstorage.m4
delete mode 100644 m4/virt-storage-zfs.m4
delete mode 100644 m4/virt-sysctl.m4
delete mode 100644 m4/virt-tls-priority.m4
delete mode 100644 m4/virt-udev.m4
delete mode 100644 m4/virt-virtualport.m4
delete mode 100644 m4/virt-warnings.m4
delete mode 100644 m4/virt-win-common.m4
delete mode 100644 m4/virt-win-mingw.m4
delete mode 100644 m4/virt-win-symbols.m4
delete mode 100644 m4/virt-win-windres.m4
delete mode 100644 m4/virt-wireshark.m4
delete mode 100644 m4/virt-xdr.m4
delete mode 100644 m4/virt-yajl.m4
create mode 100644 meson.build
create mode 100644 meson_options.txt
delete mode 100644 po/Makefile.am
create mode 100644 po/meson.build
create mode 100644 scripts/check-augeas.sh
create mode 100755 scripts/gen-def-files.sh
create mode 100755 scripts/gen-sym-files.sh
create mode 100644 scripts/install-dirs.sh
create mode 100644 scripts/install-symlink.sh
create mode 100644 scripts/meson-change-perms.sh
create mode 100755 scripts/meson-dist.sh
create mode 100755 scripts/meson-gen-authors.sh
create mode 100755 scripts/meson-html-gen.py
create mode 100755 scripts/meson-install-web.py
create mode 100755 scripts/meson-python.sh
create mode 100755 scripts/meson-timestamp.sh
create mode 100644 scripts/meson.build
delete mode 100644 src/Makefile.am
delete mode 100644 src/access/Makefile.inc.am
create mode 100644 src/access/meson.build
delete mode 100644 src/admin/Makefile.inc.am
create mode 100644 src/admin/meson.build
delete mode 100644 src/bhyve/Makefile.inc.am
create mode 100644 src/bhyve/meson.build
delete mode 100644 src/conf/Makefile.inc.am
create mode 100644 src/conf/meson.build
delete mode 100644 src/cpu/Makefile.inc.am
create mode 100644 src/cpu/meson.build
delete mode 100644 src/cpu_map/Makefile.inc.am
create mode 100644 src/cpu_map/meson.build
delete mode 100644 src/esx/Makefile.inc.am
create mode 100644 src/esx/meson.build
delete mode 100644 src/hyperv/Makefile.inc.am
create mode 100644 src/hyperv/meson.build
delete mode 100644 src/hypervisor/Makefile.inc.am
create mode 100644 src/hypervisor/meson.build
delete mode 100644 src/interface/Makefile.inc.am
create mode 100644 src/interface/meson.build
delete mode 100644 src/libxl/Makefile.inc.am
create mode 100644 src/libxl/meson.build
delete mode 100644 src/locking/Makefile.inc.am
create mode 100644 src/locking/meson.build
delete mode 100644 src/logging/Makefile.inc.am
create mode 100644 src/logging/meson.build
delete mode 100644 src/lxc/Makefile.inc.am
create mode 100644 src/lxc/meson.build
create mode 100644 src/meson.build
delete mode 100644 src/network/Makefile.inc.am
rename src/network/{default.xml => default.xml.in} (100%)
create mode 100644 src/network/meson.build
delete mode 100644 src/node_device/Makefile.inc.am
create mode 100644 src/node_device/meson.build
delete mode 100644 src/nwfilter/Makefile.inc.am
create mode 100644 src/nwfilter/meson.build
create mode 100644 src/nwfilter/xml/meson.build
delete mode 100644 src/openvz/Makefile.inc.am
create mode 100644 src/openvz/meson.build
delete mode 100644 src/qemu/Makefile.inc.am
rename src/{ => qemu}/libvirt_qemu_probes.d (100%)
create mode 100644 src/qemu/meson.build
delete mode 100644 src/remote/Makefile.inc.am
create mode 100644 src/remote/meson.build
rename src/remote/{virt-guest-shutdown.target.in => virt-guest-shutdown.target} (100%)
delete mode 100644 src/rpc/Makefile.inc.am
create mode 100644 src/rpc/meson.build
delete mode 100644 src/secret/Makefile.inc.am
create mode 100644 src/secret/meson.build
delete mode 100644 src/security/Makefile.inc.am
create mode 100644 src/security/apparmor/meson.build
create mode 100644 src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
create mode 100644 src/security/meson.build
delete mode 100644 src/storage/Makefile.inc.am
create mode 100644 src/storage/meson.build
delete mode 100644 src/test/Makefile.inc.am
create mode 100644 src/test/meson.build
delete mode 100644 src/util/Makefile.inc.am
create mode 100644 src/util/meson.build
delete mode 100644 src/vbox/Makefile.inc.am
create mode 100644 src/vbox/meson.build
delete mode 100644 src/vmware/Makefile.inc.am
create mode 100644 src/vmware/meson.build
delete mode 100644 src/vmx/Makefile.inc.am
create mode 100644 src/vmx/meson.build
delete mode 100644 src/vz/Makefile.inc.am
create mode 100644 src/vz/meson.build
delete mode 100644 tests/Makefile.am
create mode 100644 tests/meson.build
delete mode 100644 tools/Makefile.am
create mode 100644 tools/bash-completion/meson.build
create mode 100644 tools/meson.build
create mode 100644 tools/nss/meson.build
create mode 100644 tools/wireshark/meson.build
create mode 100644 tools/wireshark/src/libvirt/meson.build
create mode 100644 tools/wireshark/src/meson.build
--
2.26.2
4 years, 4 months
Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier
by Jason Wang
On 2020/6/30 下午11:39, Peter Xu wrote:
> On Tue, Jun 30, 2020 at 10:41:10AM +0800, Jason Wang wrote:
>>> /* According to ATS spec table 2.4:
>>> * S = 0, bits 15:12 = xxxx range size: 4K
>>> * S = 1, bits 15:12 = xxx0 range size: 8K
>>> * S = 1, bits 15:12 = xx01 range size: 16K
>>> * S = 1, bits 15:12 = x011 range size: 32K
>>> * S = 1, bits 15:12 = 0111 range size: 64K
>>> * ...
>>> */
>>
>> Right, but the comment is probably misleading here, since it's for the PCI-E
>> transaction between IOMMU and device not for the device IOTLB invalidation
>> descriptor.
>>
>> For device IOTLB invalidation descriptor, spec allows a [0, ~0ULL]
>> invalidation:
>>
>> "
>>
>> 6.5.2.5 Device-TLB Invalidate Descriptor
>>
>> ...
>>
>> Size (S): The size field indicates the number of consecutive pages targeted
>> by this invalidation
>> request. If S field is zero, a single page at page address specified by
>> Address [63:12] is requested
>> to be invalidated. If S field is Set, the least significant bit in the
>> Address field with value 0b
>> indicates the invalidation address range. For example, if S field is Set and
>> Address[12] is Clear, it
>> indicates an 8KB invalidation address range with base address in Address
>> [63:13]. If S field and
>> Address[12] is Set and bit 13 is Clear, it indicates a 16KB invalidation
>> address range with base
>> address in Address [63:14], etc.
>>
>> "
>>
>> So if we receive an address whose [63] is 0 and the rest is all 1, it's then
>> a [0, ~0ULL] invalidation.
> Yes. I think invalidating the whole range is always fine. It's still not
> arbitrary, right? E.g., we can't even invalidate (0x1000, 0x3000) with
> device-iotlb because of the address mask, not to say sub-pages.
Yes.
>
>>
>>>>>> How about just convert to use a range [start, end] for any notifier and move
>>>>>> the checks (e.g the assert) into the actual notifier implemented (vhost or
>>>>>> vfio)?
>>>>> IOMMUTLBEntry itself is the abstraction layer of TLB entry. Hardware TLB entry
>>>>> is definitely not arbitrary range either (because AFAICT the hardware should
>>>>> only cache PFN rather than address, so at least PAGE_SIZE aligned).
>>>>> Introducing this flag will already make this trickier just to avoid introducing
>>>>> another similar struct to IOMMUTLBEntry, but I really don't want to make it a
>>>>> default option... Not to mention I probably have no reason to urge the rest
>>>>> iommu notifier users (tcg, vfio) to change their existing good code to suite
>>>>> any of the backend who can cooperate with arbitrary address ranges...
>>>> Ok, so it looks like we need a dedicated notifiers to device IOTLB.
>>> Or we can also make a new flag for device iotlb just like current UNMAP? Then
>>> we replace the vhost type from UNMAP to DEVICE_IOTLB. But IMHO using the
>>> ARBITRARY_LENGTH flag would work in a similar way. DEVICE_IOTLB flag could
>>> also allow virtio/vhost to only receive one invalidation (now IIUC it'll
>>> receive both iotlb and device-iotlb for unmapping a page when ats=on), but then
>>> ats=on will be a must and it could break some old (misconfiged) qemu because
>>> afaict previously virtio/vhost could even work with vIOMMU (accidentally) even
>>> without ats=on.
>>
>> That's a bug and I don't think we need to workaround mis-configurated qemu
>> :)
> IMHO it depends on the strictness we want on the qemu cmdline API. :)
>
> We should at least check libvirt to make sure it's using ats=on always, then I
> agree maybe we can avoid considering the rest...
>
> Thanks,
Cc libvirt list, but I think we should fix libvirt if they don't provide
"ats=on".
Thanks
4 years, 4 months