[libvirt] [PATCH] Avoid warning message from libxl driver on non-Xen kernels

Michal Privoznik mprivozn at redhat.com
Mon Mar 17 12:49:21 UTC 2014


On 17.03.2014 13:15, Daniel P. Berrange wrote:
> The libxl driver reads /proc/xen/capabilities to see if it
> is on a Dom0 kernel. If that file does not even exist though,
> an error is logged. Check for the file existance before trying
> to read its contents to avoid the log message.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>   src/libxl/libxl_driver.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index ae7342a..445a61a 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -970,6 +970,10 @@ libxlDriverShouldLoad(bool privileged)
>           return ret;
>       }
>
> +    if (!virFileExists("/proc/xen/capabilities")) {
> +        VIR_INFO("Disabling driver as /proc/xen/capabilities does not exist");
> +        return false;
> +    }
>       /*
>        * Don't load if not running on a Xen control domain (dom0). It is not
>        * sufficient to check for the file to exist as any guest can mount
>

Unfortunately, the context does not show the path is used again, but it 
is. How about:

diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 09ae075..682f851 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -66,6 +66,8 @@
  #define LIBXL_CONFIG_FORMAT_XM "xen-xm"
  #define LIBXL_CONFIG_FORMAT_SEXPR "xen-sxpr"

+#define HYPERVISOR_CAPABILITIES "/proc/xen/capabilities"
+
  /* Number of Xen scheduler parameters */
  #define XEN_SCHED_CREDIT_NPARAM   2

@@ -970,12 +972,18 @@ libxlDriverShouldLoad(bool privileged)
          return ret;
      }

+    if (!virFileExists(HYPERVISOR_CAPABILITIES)) {
+        VIR_INFO("Disabling driver as " HYPERVISOR_CAPABILITIES
+                 " does not exist");
+        return false;
+    }
+
      /*
       * Don't load if not running on a Xen control domain (dom0). It is not
       * sufficient to check for the file to exist as any guest can mount
       * xenfs to /proc/xen.
       */
-    status = virFileReadAll("/proc/xen/capabilities", 10, &output);
+    status = virFileReadAll(HYPERVISOR_CAPABILITIES, 10, &output);
      if (status >= 0) {
          status = strncmp(output, "control_d", 9);


Michal




More information about the libvir-list mailing list