[libvirt] [PATCH] log: fix false oom error message
by Nikolay Shirokovskiy
In case filter is new one an oom error message is reported.
This bug is introduced in 51b2606f. However this error does
not get into the log in the default configuration. To trigger
it one need to specify log outputs in LIBVIRT_LOG_OUTPUTS
variable.
---
src/util/virlog.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/util/virlog.c b/src/util/virlog.c
index 06f9a60..f5b88b6 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -335,11 +335,12 @@ virLogDefineFilter(const char *match,
goto cleanup;
virLogFiltersSerial++;
+ ret = virLogNbFilters - 1;
cleanup:
virLogUnlock();
if (ret < 0)
virReportOOMError();
- return virLogNbFilters;
+ return ret;
}
/**
--
1.8.3.1
8 years, 2 months
[libvirt] [PATCH] qemu: Don't use query-migrate on destination
by Jiri Denemark
When migration fails, we need to poke QEMU monitor to check for a reason
of the failure. We did this using query-migrate QMP command, which is
not supposed to return any meaningful result on the destination side.
Thus if the monitor was still functional when we detected the migration
failure, parsing the answer from query-migrate always failed with the
following error message:
"info migration reply was missing return status"
This irrelevant message was then used as the reason for the migration
failure replacing any message we might have had.
Let's use harmless query-status for poking the monitor to make sure we
only get an error if the monitor connection is broken.
https://bugzilla.redhat.com/show_bug.cgi?id=1374613
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_domain.c | 20 ++++++++++++++++++++
src/qemu/qemu_domain.h | 4 ++++
src/qemu/qemu_migration.c | 6 +-----
src/qemu/qemu_monitor.c | 8 ++++++++
src/qemu/qemu_monitor.h | 1 +
5 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index fd79390..fb766d0 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -6127,3 +6127,23 @@ qemuDomainVcpuPersistOrder(virDomainDefPtr def)
}
}
}
+
+
+int
+qemuDomainCheckMonitor(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ qemuDomainAsyncJob asyncJob)
+{
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+ int ret;
+
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ return -1;
+
+ ret = qemuMonitorCheck(priv->mon);
+
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ return -1;
+
+ return ret;
+}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 13c0372..a1404d0 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -728,4 +728,8 @@ bool qemuDomainVcpuHotplugIsInOrder(virDomainDefPtr def)
void qemuDomainVcpuPersistOrder(virDomainDefPtr def)
ATTRIBUTE_NONNULL(1);
+int qemuDomainCheckMonitor(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ qemuDomainAsyncJob asyncJob);
+
#endif /* __QEMU_DOMAIN_H__ */
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 07f18db..e734816 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -6208,14 +6208,10 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
}
if (retcode != 0) {
- qemuDomainJobInfo info;
-
/* Check for a possible error on the monitor in case Finish was called
* earlier than monitor EOF handler got a chance to process the error
*/
- qemuMigrationFetchJobStatus(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_IN,
- &info);
+ qemuDomainCheckMonitor(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN);
goto endjob;
}
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 4171914..1fdee3a 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1617,6 +1617,14 @@ qemuMonitorStopCPUs(qemuMonitorPtr mon)
int
+qemuMonitorCheck(qemuMonitorPtr mon)
+{
+ bool running;
+ return qemuMonitorGetStatus(mon, &running, NULL);
+}
+
+
+int
qemuMonitorGetStatus(qemuMonitorPtr mon,
bool *running,
virDomainPausedReason *reason)
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index b838725..255fff2 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -382,6 +382,7 @@ typedef enum {
VIR_ENUM_DECL(qemuMonitorVMStatus)
int qemuMonitorVMStatusToPausedReason(const char *status);
+int qemuMonitorCheck(qemuMonitorPtr mon);
int qemuMonitorGetStatus(qemuMonitorPtr mon,
bool *running,
virDomainPausedReason *reason)
--
2.10.0
8 years, 2 months
[libvirt] [PATCH 0/2] A couple of volume encryption patches
by John Ferlan
I'm assume there will be a couple of bz's on these...
Patch 1 fixes a problem where the vol-dumpxml would not list the <secret>
element from a volume in a pool after the initial creation and a pool
refresh (or libvirtd restart). This issue was missed due to rewriting
the LUKS support to not use it's own "new" secret type (key), but rather
use the existing "volume" secret type.
Patch 2 fixes a problem where QCOW2 (or QCOW1) encrypted volume would
lose the <encryption> and <secret> after a volume refresh. Details are
in the patch. The issue is rooted in proper detection of the volume type
during the virStorageFileGetMetadataFromBuf call.
John Ferlan (2):
storage: Need to refresh secret for luks volume after volume refresh
storage: Need to properly read the crypt offset value
src/storage/storage_backend_fs.c | 16 ++++++++++------
src/util/virstoragefile.c | 7 +++++--
2 files changed, 15 insertions(+), 8 deletions(-)
--
2.7.4
8 years, 2 months
[libvirt] [PATCH 0/2] try harder to get dest qemu errors on migation
by Nikolay Shirokovskiy
Hi, all.
In case migration fails due to destination qemu exits unexpectedly user
recevies the qemu log in the error message. Unfortunately log is truncated and
the most interesting part is missed (below is the example of such a log [1]).
Actually for the most cases the first patch will be enough to fix the issue.
Originally I thought the problem is qemu logging and reading the log are not in
sync (which is true) so I tried to fix it as well in the second patch.
[1] log example:
CPU Reset (CPU 0)
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=00000000 EFL=00000000 [-------] CPL=0 II=0 A20=0 SMM=0 HLT=0
ES =0000 00000000 00000000 00000000
CS =0000 00000000 00000000 00000000
SS =0000 00000000 00000000 00000000
DS =0000 00000000 00000000 00000000
FS =0000 00000000 00000000 00000000
GS =0000 00000000 00000000 00000000
LDT=0000 00000000 00000000 00000000
TR =0000 00000000 00000000 00000000
GDT= 00000000 00000000
IDT= 00000000 00000000
CR0=00000000 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=0000000000000000 DR7=0000000000000000
CCS=00000000 CCD=00000000 CCO=DYNAMIC
EFER=0000000000000000
FCW=0000 FSW=0000 [ST=0] FTW=ff MXCSR=00000000
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
CPU Reset (CPU 1)
EAX=00000000 EBX=00000000 ECX=00000000 EDX=000206a1
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=0000fff0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =f000 ffff0000 0000ffff 00009b00
SS =0000 00000000 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT= 00000000 0000ffff
IDT= 00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=00000000 CCD=00000000 CCO=DYNAMIC
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=000
qemu: terminating on signal 15 from pid 168133
Nikolay Shirokovskiy (2):
log: remove 1k limit for error messages
log: drain log of exiting qemu process carefully
src/logging/log_handler.c | 39 +++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_domain.c | 4 ++++
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_process.c | 2 ++
src/util/virerror.c | 9 ++++-----
5 files changed, 48 insertions(+), 7 deletions(-)
--
1.8.3.1
8 years, 2 months
[libvirt] [PATCH v6 0/5] Add native TLS encrypted chardev TCP support
by John Ferlan
v5:
http://www.redhat.com/archives/libvir-list/2016-August/msg00282.html
Patches 1-5 from that series already pushed
Patch 6 from that series is removed
Patch 7 is untouched and is patch 3 in this series
Patches 8-9 modified for new paradigm (patches 4-5 of this series)
Patch 1 [NEW] From patch 6 review comment - provide a way to allow
disabling the TLS for a specific guest and serial TCP chardev. A new
test was added which shows that the xml2argv output does not add the
TLS object within the same "frame" as the test that would add it.
Patch 2 [NEW] Rather than use a <secret> object for the serial TCP
chardev, create a qemu.conf option as a host wide setting. The patch
implements a 'chardev_tls_x509_secret_uuid' value which will be used
by patches 4-5 rather than the serial TCP specific setting.
Patch 3 is unchanged
Patches 4-5 were adjusted in order to use the chardevTCPtlsx509secretUUID
rather than the chardev TCP specific 'chardev->source.data.tcp.seclookupdef'
value sourced from a <secret>.
John Ferlan (5):
domain: Add optional 'disableTLS' attribute for TCP chardev
conf: Introduce {default|chardev}_tls_x509_secret_uuid
qemu: Introduce qemuDomainChardevPrivatePtr
qemu: Add a secret object to/for a chardev tcp with secret
qemu: Add the ability to hotplug a secret object for TCP chardev TLS
docs/formatdomain.html.in | 20 +++
docs/schemas/domaincommon.rng | 5 +
src/conf/domain_conf.c | 51 ++++++--
src/conf/domain_conf.h | 5 +-
src/libxl/libxl_domain.c | 2 +-
src/lxc/lxc_native.c | 2 +-
src/qemu/libvirtd_qemu.aug | 2 +
src/qemu/qemu.conf | 24 ++++
src/qemu/qemu_command.c | 34 ++++-
src/qemu/qemu_command.h | 1 +
src/qemu/qemu_conf.c | 22 ++++
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 143 ++++++++++++++++++++-
src/qemu/qemu_domain.h | 30 ++++-
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_hotplug.c | 63 ++++++++-
src/qemu/qemu_hotplug.h | 3 +-
src/qemu/qemu_parse_command.c | 4 +-
src/qemu/qemu_process.c | 6 +-
src/qemu/test_libvirtd_qemu.aug.in | 2 +
src/vz/vz_sdk.c | 2 +-
src/xenconfig/xen_sxpr.c | 2 +-
tests/qemuhotplugtest.c | 2 +-
...argv-serial-tcp-tlsx509-chardev-disableTLS.args | 30 +++++
...2argv-serial-tcp-tlsx509-chardev-disableTLS.xml | 50 +++++++
...xml2argv-serial-tcp-tlsx509-secret-chardev.args | 38 ++++++
...uxml2argv-serial-tcp-tlsx509-secret-chardev.xml | 50 +++++++
tests/qemuxml2argvtest.c | 22 ++++
...mlout-serial-tcp-tlsx509-chardev-disableTLS.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
30 files changed, 588 insertions(+), 34 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev-disableTLS.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev-disableTLS.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-serial-tcp-tlsx509-chardev-disableTLS.xml
--
2.7.4
8 years, 2 months
[libvirt] [PATCH 0/2] try harder to get dest qemu errors on migation
by Nikolay Shirokovskiy
Hi, all.
In case migration fails due to destination qemu exits unexpectedly user
recevies the qemu log in the error message. Unfortunately log is truncated and
the most interesting part is missed (below is the example of such a log [1]).
Actually for the most cases the first patch will be enough to fix the issue.
Originally I thought the problem is qemu logging and reading the log are not in
sync (which is true) so I tried to fix it as well in the second patch.
[1] log example:
CPU Reset (CPU 0)
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=00000000 EFL=00000000 [-------] CPL=0 II=0 A20=0 SMM=0 HLT=0
ES =0000 00000000 00000000 00000000
CS =0000 00000000 00000000 00000000
SS =0000 00000000 00000000 00000000
DS =0000 00000000 00000000 00000000
FS =0000 00000000 00000000 00000000
GS =0000 00000000 00000000 00000000
LDT=0000 00000000 00000000 00000000
TR =0000 00000000 00000000 00000000
GDT= 00000000 00000000
IDT= 00000000 00000000
CR0=00000000 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=0000000000000000 DR7=0000000000000000
CCS=00000000 CCD=00000000 CCO=DYNAMIC
EFER=0000000000000000
FCW=0000 FSW=0000 [ST=0] FTW=ff MXCSR=00000000
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
CPU Reset (CPU 1)
EAX=00000000 EBX=00000000 ECX=00000000 EDX=000206a1
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=0000fff0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =f000 ffff0000 0000ffff 00009b00
SS =0000 00000000 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT= 00000000 0000ffff
IDT= 00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=00000000 CCD=00000000 CCO=DYNAMIC
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=000
qemu: terminating on signal 15 from pid 168133
Nikolay Shirokovskiy (2):
log: remove 1k limit for error messages
log: drain log of exiting qemu process carefully
src/logging/log_handler.c | 39 +++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_domain.c | 4 ++++
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_process.c | 2 ++
src/util/virerror.c | 9 ++++-----
5 files changed, 48 insertions(+), 7 deletions(-)
--
1.8.3.1
8 years, 2 months
[libvirt] [gconfig v2 0/6] Add support for changing listen address
by Visarion Alexandru
From: Visarion Alexandru <viorel.visarion(a)gmail.com>
libvirt-domain-graphics-listen defines an abstract class used
to represent one listen node.
libvirt-domain-graphics-liste-address defines a class that
represents a listen node of type 'address', for the
graphics device.
We have to first remove the 'listen' attribute of the
graphics device before adding child 'listen' nodes,
to avoid inconsistencies check.
I added a test for the new API which uses a SPICE graphics (I
noticed that generally APIs aren't tested on both SPICE and VNC)
Visarion Alexandru (6):
libvirt-gconfig: Include GIO dependency
Introduce libvirt-domain-graphics-listen
Introduce libvirt-gconfig-domain-graphics-listen-address
config: Add vnc listen getter/setter
config: Add spice listen getter/setter
tests: Add test for GVirConfigDomainGraphicsListenAddress
configure.ac | 2 +
libvirt-gconfig-1.0.pc.in | 2 +-
libvirt-gconfig/Makefile.am | 10 +-
...ibvirt-gconfig-domain-graphics-listen-address.c | 128 +++++++++++++++++++++
...ibvirt-gconfig-domain-graphics-listen-address.h | 78 +++++++++++++
.../libvirt-gconfig-domain-graphics-listen.c | 49 ++++++++
.../libvirt-gconfig-domain-graphics-listen.h | 65 +++++++++++
.../libvirt-gconfig-domain-graphics-spice.c | 84 ++++++++++++++
.../libvirt-gconfig-domain-graphics-spice.h | 4 +
.../libvirt-gconfig-domain-graphics-vnc.c | 84 ++++++++++++++
.../libvirt-gconfig-domain-graphics-vnc.h | 4 +
libvirt-gconfig/libvirt-gconfig.h | 2 +
libvirt-gconfig/libvirt-gconfig.sym | 12 ++
tests/test-gconfig.c | 36 ++++++
.../xml/gconfig-domain-device-graphics-listen.xml | 7 ++
vapi/Makefile.am | 1 +
16 files changed, 565 insertions(+), 3 deletions(-)
create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-graphics-listen-address.c
create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-graphics-listen-address.h
create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-graphics-listen.c
create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-graphics-listen.h
create mode 100644 tests/xml/gconfig-domain-device-graphics-listen.xml
--
2.7.4
8 years, 2 months
[libvirt] [PATCH] util: Quiet the logging if perf file doesn't exist
by John Ferlan
Commit id 'b00d7f29' shifted the opening of the /sys/devices/intel_cqm/type
file from event enable to perf event initialization. If the file did not
exist, then an error would be written to the domain log:
2016-09-06 20:51:21.677+0000: 7310: error : virFileReadAll:1360 : Failed to open file '/sys/devices/intel_cqm/type': No such file or directory
Since the error is now handled in virPerfEventEnable by checking if the
event_attr->attrType == 0 for CMT, MBML, and MBMT events - we can just
use the Quiet API in order to not log the error we're going to throw away.
Additionally, rather than using virReportSystemError, use virReportError
and VIR_ERR_ARGUMENT_UNSUPPORTED in order to signify that support isn't there
for that type of perf event - adjust the error message as well.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/util/virperf.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/util/virperf.c b/src/util/virperf.c
index cd66b05..a65a4bf 100644
--- a/src/util/virperf.c
+++ b/src/util/virperf.c
@@ -116,7 +116,7 @@ virPerfRdtAttrInit(void)
char *tmp = NULL;
unsigned int attr_type = 0;
- if (virFileReadAll("/sys/devices/intel_cqm/type", 10, &buf) < 0)
+ if (virFileReadAllQuiet("/sys/devices/intel_cqm/type", 10, &buf) < 0)
goto error;
if ((tmp = strchr(buf, '\n')))
@@ -174,9 +174,9 @@ virPerfEventEnable(virPerfPtr perf,
if (event_attr->attrType == 0 && (type == VIR_PERF_EVENT_CMT ||
type == VIR_PERF_EVENT_MBMT ||
type == VIR_PERF_EVENT_MBML)) {
- virReportSystemError(errno,
- _("Unable to open perf event for %s"),
- virPerfEventTypeToString(event->type));
+ virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED,
+ _("unable to enable perf event for %s"),
+ virPerfEventTypeToString(event->type));
return -1;
}
--
2.7.4
8 years, 2 months
[libvirt] [PATCH 0/2] qemu: hotplug: Fix two issues with drives made empty by using starup policy
by Peter Krempa
If a cdrom drive is emptied by 'requisite' startup policy the policy setting would
not be cleared and due to a bug in qemu the cdrom image could not be changed.
The first patch clears the startup policy setting and the second one fixes
ejection of cdroms if --force is specified.
Also I've reported the issue in qemu https://bugzilla.redhat.com/show_bug.cgi?id=1373264
Peter Krempa (2):
qemu: domain: Clear startup policy for dropped removable media
qemu: hotplug: Don't wait if cdrom tray is opened forcibly
src/qemu/qemu_domain.c | 2 ++
src/qemu/qemu_hotplug.c | 9 ++++-----
2 files changed, 6 insertions(+), 5 deletions(-)
--
2.9.2
8 years, 2 months
[libvirt] [PATCH v2 00/10] Introduce NVDIMM support
by Michal Privoznik
This is v2 of:
https://www.redhat.com/archives/libvir-list/2016-August/msg00055.html
diff to v1:
- Rebase to the latest HEAD
- Introduced relabeling for host side of NVDIMM
Michal Privoznik (10):
Introduce NVDIMM memory model
qemu: Introduce QEMU_CAPS_DEVICE_NVDIMM
qemu: Implement NVDIMM
conf: Introduce memAccess to <memory/>
qemu: Implement memAccess for <memory/> banks
security_dac: Label host side of NVDIMM
security_selinux: Label host side of NVDIMM
security: Introduce internal APIs for memdev labelling
secdrivers: Implement memdev relabel APIs
qemu_hotplug: Relabel memdev
docs/formatdomain.html.in | 41 ++++++--
docs/schemas/domaincommon.rng | 51 ++++++----
src/conf/domain_conf.c | 112 ++++++++++++++++-----
src/conf/domain_conf.h | 4 +
src/libvirt_private.syms | 4 +
src/qemu/qemu_alias.c | 12 ++-
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 87 +++++++++++-----
src/qemu/qemu_command.h | 2 +
src/qemu/qemu_domain.c | 29 ++++--
src/qemu/qemu_hotplug.c | 17 +++-
src/security/security_dac.c | 76 ++++++++++++++
src/security/security_driver.h | 9 ++
src/security/security_manager.c | 56 +++++++++++
src/security/security_manager.h | 7 ++
src/security/security_nop.c | 19 ++++
src/security/security_selinux.c | 69 +++++++++++++
src/security/security_stack.c | 38 +++++++
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 +
.../qemuxml2argv-hugepages-numa.args | 5 +-
.../qemuxml2argv-hugepages-pages.args | 24 ++---
.../qemuxml2argv-hugepages-pages2.args | 8 +-
.../qemuxml2argv-hugepages-pages3.args | 4 +-
.../qemuxml2argv-hugepages-shared.args | 22 ++--
.../qemuxml2argv-memory-hotplug-dimm-addr.args | 5 +-
.../qemuxml2argv-memory-hotplug-dimm.args | 5 +-
...muxml2argv-memory-hotplug-nvdimm-memAccess.args | 26 +++++
...emuxml2argv-memory-hotplug-nvdimm-memAccess.xml | 49 +++++++++
.../qemuxml2argv-memory-hotplug-nvdimm.args | 25 +++++
.../qemuxml2argv-memory-hotplug-nvdimm.xml | 49 +++++++++
tests/qemuxml2argvtest.c | 6 +-
33 files changed, 743 insertions(+), 123 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-memAccess.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-memAccess.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.xml
--
2.8.4
8 years, 2 months