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

Daniel Veillard veillard at redhat.com
Fri Feb 11 13:30:50 UTC 2011


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 at 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 at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list