[libvirt] [PATCH] util: Fix build on FreeBSD
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Pushed as a trivial build-braker.
src/util/virnetdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 598d1c61a..486fe4cd1 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -316,7 +316,7 @@ virNetDevSetMACInternal(const char *ifname,
ret = 0;
cleanup:
- VIR_DEBUG("SIOCSIFLLADDR %s MAC=%s - %s", ifname, mac + 1),
+ VIR_DEBUG("SIOCSIFLLADDR %s MAC=%s - %s", ifname, mac + 1,
ret < 0 ? "Fail" : "Success");
VIR_FORCE_CLOSE(s);
--
2.12.0
8 years, 2 months
[libvirt] [PATCH] netdev: fix build on non-Linux
by Roman Bogorodskiy
Fix some typos in the source code:
- Missplaced ")",
- virNetDevVLanPtr -> virNetDevVlanPtr
---
I'm NOT pushing that under the build breaker rule right now because
I also have some other build failures and syntax-checking failing, so I
cannot do a complete test build.
src/util/virnetdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 598d1c61a..47e2b20d5 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -316,7 +316,7 @@ virNetDevSetMACInternal(const char *ifname,
ret = 0;
cleanup:
- VIR_DEBUG("SIOCSIFLLADDR %s MAC=%s - %s", ifname, mac + 1),
+ VIR_DEBUG("SIOCSIFLLADDR %s MAC=%s - %s", ifname, mac + 1,
ret < 0 ? "Fail" : "Success");
VIR_FORCE_CLOSE(s);
@@ -2336,7 +2336,7 @@ virNetDevReadNetConfig(const char *linkdev ATTRIBUTE_UNUSED,
int vf ATTRIBUTE_UNUSED,
const char *stateDir ATTRIBUTE_UNUSED,
virMacAddrPtr *adminMAC ATTRIBUTE_UNUSED,
- virNetDevVLanPtr *vlan ATTRIBUTE_UNUSED,
+ virNetDevVlanPtr *vlan ATTRIBUTE_UNUSED,
virMacAddrPtr *MAC ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
--
2.11.0
8 years, 2 months
[libvirt] [PATCH] news: Update after recent commits
by Peter Krempa
Mention the hyperv notifier and the new API to set block thresholds.
---
docs/news.xml | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 814bd93fd..2dbd2335d 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -70,6 +70,20 @@
introducing a new host device type in the XML.
</description>
</change>
+ <change>
+ <summary>
+ Add support for block device threshold event
+ </summary>
+ <description>
+ When using thin provisioning, management tools need to resize the
+ disk in certain cases. To avoid having them to poll disk usage
+ this version introduces an event which will be fired when a given
+ offset of the storage is written by the hypervisor. Together with the
+ API it allows registering thresholds for given storage backing
+ volumes and this event will then notify management if the threshold
+ is exceeded. Currently only the qemu driver supports this.
+ </description>
+ </change>
</section>
<section title="Improvements">
<change>
@@ -94,6 +108,17 @@
applications running on the platform.
</description>
</change>
+ <change>
+ <summary>
+ Write hyperv crash information into vm log
+ </summary>
+ <description>
+ qemu's implementation of the hyperv panic notifier now reports
+ information about the crash from the guest os. Libvirt starting from
+ this version logs the information to the vm log file for possible
+ debugging.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
<change>
--
2.12.1
8 years, 2 months
[libvirt] [PATCH 0/2] More simple fixes.
by John Ferlan
One noted after push w/r/t change in news.xml and the other found after
I rebased to current head from recent commit.
John Ferlan (2):
news: Add <change> lost in merge
util: Remove NONNUL from virHostdevReAttachMediatedDevices
docs/news.xml | 2 ++
src/util/virhostdev.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
--
2.9.3
8 years, 2 months
[libvirt] [PATCH] virmdev: fix build on non-Linux
by Roman Bogorodskiy
- Make virMediatedDeviceNew() stub args match its prototype
- Fix typo: virRerportError -> virReportError
- Move virMediatedDeviceGetSysfsPath() into #ifdef __linux__ block as
it uses MDEV_SYSFS_DEVICES, and a stub for it
---
I'm not pushing this one too, until I get a completely clean build.
src/util/virmdev.c | 39 ++++++++++++++++++++++++---------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/src/util/virmdev.c b/src/util/virmdev.c
index e924af3c1..e49ea18e5 100644
--- a/src/util/virmdev.c
+++ b/src/util/virmdev.c
@@ -170,15 +170,34 @@ virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
return ret;
}
+
+char *
+virMediatedDeviceGetSysfsPath(const char *uuidstr)
+{
+ char *ret = NULL;
+
+ ignore_value(virAsprintf(&ret, MDEV_SYSFS_DEVICES "%s", uuidstr));
+ return ret;
+}
+
#else
virMediatedDevicePtr
-virMediatedDeviceNew(virPCIDeviceAddressPtr pciaddr ATTRIBUTE_UNUSED,
- const char *uuidstr ATTRIBUTE_UNUSED)
+virMediatedDeviceNew(const char *uuidstr ATTRIBUTE_UNUSED,
+ virMediatedDeviceModelType model ATTRIBUTE_UNUSED)
{
- virRerportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("mediated devices are not supported on non-linux "
- "platforms"));
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("mediated devices are not supported on non-linux "
+ "platforms"));
+ return NULL;
+}
+
+char *
+virMediatedDeviceGetSysfsPath(const char *uuidstr ATTRIBUTE_UNUSED)
+{
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("mediated devices are not supported on non-linux "
+ "platforms"));
return NULL;
}
@@ -423,16 +442,6 @@ virMediatedDeviceIsUsed(virMediatedDevicePtr dev,
}
-char *
-virMediatedDeviceGetSysfsPath(const char *uuidstr)
-{
- char *ret = NULL;
-
- ignore_value(virAsprintf(&ret, MDEV_SYSFS_DEVICES "%s", uuidstr));
- return ret;
-}
-
-
int
virMediatedDeviceListMarkDevices(virMediatedDeviceListPtr dst,
virMediatedDeviceListPtr src,
--
2.11.0
8 years, 2 months
[libvirt] [PATCH] network: better validation of devices in hostdev network pool
by Laine Stump
This adds a few validations to the devices listed for a hostdev network:
* devices must be listed by PCI address, not by netdev name
* listing a device by PCI address is valid only for hostdev networks, not
for other types of network (e.g. macvtap passthrough).
* each device in a hostdev pool must be an SR-IOV VF
Resolves: https://bugzilla.redhat.com/1004676
---
src/network/bridge_driver.c | 47 ++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 44 insertions(+), 3 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 3a7a249..3270dc5 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3224,14 +3224,55 @@ networkValidate(virNetworkDriverStatePtr driver,
* the type of each.
*/
for (i = 0; i < def->forward.nifs; i++) {
- switch ((virNetworkForwardHostdevDeviceType)
- def->forward.ifs[i].type) {
+ virNetworkForwardIfDefPtr iface = &def->forward.ifs[i];
+ char *sysfs_path = NULL;
+
+ switch ((virNetworkForwardHostdevDeviceType) iface->type) {
case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_NETDEV:
usesInterface = true;
+
+ if (def->forward.type == VIR_NETWORK_FORWARD_HOSTDEV) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("hostdev network '%s' lists '%s' "
+ "in the device pool, but hostdev "
+ "networks require all devices to "
+ "be listed by PCI address, not "
+ "network device name"),
+ def->name, iface->device.dev);
+ return -1;
+ }
break;
- case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI:
+
+ case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI: {
usesAddress = true;
+
+ if (def->forward.type != VIR_NETWORK_FORWARD_HOSTDEV) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("network '%s' has forward mode '%s' "
+ " but lists a device by PCI address "
+ "in the device pool. This is only "
+ "supported for networks with forward "
+ "mode 'hostdev'"),
+ def->name,
+ virNetworkForwardTypeToString(def->forward.type));
+ return -1;
+ }
+
+ if (virPCIDeviceAddressGetSysfsFile(&iface->device.pci, &sysfs_path) < 0)
+ return -1;
+
+ if (!virPCIIsVirtualFunction(sysfs_path)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("device '%s' in network '%s' is not "
+ "an SR-IOV Virtual Function"),
+ sysfs_path, def->name);
+ VIR_FREE(sysfs_path);
+ return -1;
+ }
+ VIR_FREE(sysfs_path);
break;
+ }
+
case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_NONE:
case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_LAST:
break;
--
2.9.3
8 years, 2 months
[libvirt] [PATCH 0/3] Build and other fixes
by Martin Kletzander
So I broke the build on non-Linux. Sorry. But I did that *because* I
was considering other platforms in the code. Also there was a bad
dereference somewhere. So because it's three patches, I'm rather
sending it for review than just pushing it.
Martin Kletzander (3):
tests: Properly dereference cpus pointer in virnumamock.c
virhostcpu: Expose virHostCPUGetOnline on non-Linux
virhostcpu: Make only defined symbols available
src/util/virhostcpu.c | 35 +++++++++++++++++------------------
src/util/virhostcpu.h | 5 ++++-
tests/virnumamock.c | 2 +-
3 files changed, 22 insertions(+), 20 deletions(-)
--
2.12.1
8 years, 2 months
[libvirt] [PATCH] logical: Need to overwrite/clear more than just first 512 bytes
by John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1430679
As it turns out some file headers (e.g. ext4) may be larger/longer than
the 512 bytes of zeros being written prior to a pvcreate, so let's write
out 2048 bytes similar to how the pvcreate sources would peek at the first
4 sectors of the device.
Make sure there is at enough bytes on the device to clear before doing
doing the clear - just to be sure.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/storage/storage_backend_logical.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index 29d63b1..9ca6fd4 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -93,7 +93,8 @@ static int
virStorageBackendLogicalInitializeDevice(const char *path)
{
int fd = -1;
- char zeros[PV_BLANK_SECTOR_SIZE] = {0};
+ char zeros[4 * PV_BLANK_SECTOR_SIZE] = {0};
+ off_t size;
int ret = -1;
virCommandPtr pvcmd = NULL;
@@ -107,6 +108,25 @@ virStorageBackendLogicalInitializeDevice(const char *path)
return -1;
}
+ if ((size = lseek(fd, 0, SEEK_END)) == (off_t)-1) {
+ virReportSystemError(errno,
+ _("failed to seek to end of %s"), path);
+ goto cleanup;
+ }
+
+ if (size < 4 * PV_BLANK_SECTOR_SIZE) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("cannot initialize '%s' detected size='%lu' less "
+ "than minimum required='%d"),
+ path, size, 4 * PV_BLANK_SECTOR_SIZE);
+ goto cleanup;
+ }
+ if ((size = lseek(fd, 0, SEEK_SET)) == (off_t)-1) {
+ virReportSystemError(errno,
+ _("failed to seek to start of %s"), path);
+ goto cleanup;
+ }
+
if (safewrite(fd, zeros, sizeof(zeros)) < 0) {
virReportSystemError(errno, _("cannot clear device header of '%s'"),
path);
--
2.9.3
8 years, 2 months
[libvirt] [PATCH 0/2] Fix syntax check
by Jiri Denemark
Jiri Denemark (2):
build: Fix sc_prohibit_exit_in_tests syntax check
build: Fix syntax check in VPATH
cfg.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--
2.12.2
8 years, 2 months