[libvirt] [PATCH] qemu: Report a more informative error for missing cgroup controllers

On Fri, Feb 11, 2011 at 02:17:55PM +0100, Matthias Bolte wrote:
Patch attached.
Matthias
From e50c5ed1fd2e1b1aabd0c10a6fba1af22e787ddf Mon Sep 17 00:00:00 2001 From: Matthias Bolte <matthias.bolte@googlemail.com> Date: Fri, 11 Feb 2011 11:02:39 +0100 Subject: [PATCH] qemu: Report a more informative error for missing cgroup controllers
Also use VIR_ERR_OPERATION_INVALID instead of VIR_ERR_NO_SUPPORT, as the operation could succeed when the cgroup controller was mounted. --- src/qemu/qemu_driver.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 21d7779..fa462f9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3962,7 +3962,7 @@ static int qemudDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
/* Lack of balloon support is a fatal error */ if (r == 0) { - qemuReportError(VIR_ERR_NO_SUPPORT, + qemuReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot set memory of an active domain")); goto endjob; } @@ -6980,8 +6980,8 @@ static char *qemuGetSchedulerType(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
@@ -7011,8 +7011,8 @@ static int qemuDomainSetMemoryParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_MEMORY)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup memory controller is not mounted")); goto cleanup; }
@@ -7114,8 +7114,8 @@ static int qemuDomainGetMemoryParameters(virDomainPtr dom, qemuDriverLock(driver);
if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_MEMORY)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup memory controller is not mounted")); goto cleanup; }
@@ -7227,8 +7227,8 @@ static int qemuSetSchedulerParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
@@ -7292,8 +7292,8 @@ static int qemuGetSchedulerParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
Looks fine to me, ACK Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

2011/2/11 Daniel Veillard <veillard@redhat.com>:
On Fri, Feb 11, 2011 at 02:17:55PM +0100, Matthias Bolte wrote:
Patch attached.
Matthias
From e50c5ed1fd2e1b1aabd0c10a6fba1af22e787ddf Mon Sep 17 00:00:00 2001 From: Matthias Bolte <matthias.bolte@googlemail.com> Date: Fri, 11 Feb 2011 11:02:39 +0100 Subject: [PATCH] qemu: Report a more informative error for missing cgroup controllers
Also use VIR_ERR_OPERATION_INVALID instead of VIR_ERR_NO_SUPPORT, as the operation could succeed when the cgroup controller was mounted. --- src/qemu/qemu_driver.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 21d7779..fa462f9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3962,7 +3962,7 @@ static int qemudDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
/* Lack of balloon support is a fatal error */ if (r == 0) { - qemuReportError(VIR_ERR_NO_SUPPORT, + qemuReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot set memory of an active domain")); goto endjob; } @@ -6980,8 +6980,8 @@ static char *qemuGetSchedulerType(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
@@ -7011,8 +7011,8 @@ static int qemuDomainSetMemoryParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_MEMORY)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup memory controller is not mounted")); goto cleanup; }
@@ -7114,8 +7114,8 @@ static int qemuDomainGetMemoryParameters(virDomainPtr dom, qemuDriverLock(driver);
if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_MEMORY)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup memory controller is not mounted")); goto cleanup; }
@@ -7227,8 +7227,8 @@ static int qemuSetSchedulerParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
@@ -7292,8 +7292,8 @@ static int qemuGetSchedulerParameters(virDomainPtr dom,
qemuDriverLock(driver); if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_CPU)) { - qemuReportError(VIR_ERR_NO_SUPPORT, - __FUNCTION__); + qemuReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cgroup CPU controller is not mounted")); goto cleanup; }
Looks fine to me, ACK
Daniel
Thanks, pushed. Matthias
participants (2)
-
Daniel Veillard
-
Matthias Bolte