Richard W.M. Jones
2014-Aug-14 14:18 UTC
[Libguestfs] [PATCH] launch: direct: Only issue Debian /dev/kvm group warning if /dev/kvm wasn't openable (RHBZ#1130189).
This warning was meant for the case where /dev/kvm is inaccessible and
the user must add themselves to a special group.
However we didn't take into account whether /dev/kvm was openable in
this test. If it's openable, no point issuing the warning.
Move the is_openable ("/dev/kvm") test earlier, and don't issue
the
warning if that was successful.
---
src/launch-direct.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/launch-direct.c b/src/launch-direct.c
index 3bae254..3a8f2b2 100644
--- a/src/launch-direct.c
+++ b/src/launch-direct.c
@@ -289,11 +289,19 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
return -1;
}
+ /* Try to guess if KVM is available. We are just checking that
+ * /dev/kvm is openable. That's not reliable, since /dev/kvm
+ * might be openable by qemu but not by us (think: SELinux) in
+ * which case the user would not get hardware virtualization,
+ * although at least shouldn't fail.
+ */
+ has_kvm = is_openable (g, "/dev/kvm", O_RDWR|O_CLOEXEC);
+
force_tcg = guestfs___get_backend_setting_bool (g, "force_tcg");
if (force_tcg == -1)
return -1;
- if (!force_tcg)
+ if (!has_kvm && !force_tcg)
debian_kvm_warning (g);
guestfs___launch_send_progress (g, 0);
@@ -411,14 +419,6 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
warning (g, "qemu debugging is enabled, connect gdb to tcp::1234 to
begin");
}
- /* Try to guess if KVM is available. We are just checking that
- * /dev/kvm is openable. That's not reliable, since /dev/kvm
- * might be openable by qemu but not by us (think: SELinux) in
- * which case the user would not get hardware virtualization,
- * although at least shouldn't fail.
- */
- has_kvm = is_openable (g, "/dev/kvm", O_RDWR|O_CLOEXEC);
-
cpu_model = guestfs___get_cpu_model (has_kvm && !force_tcg);
if (cpu_model) {
ADD_CMDLINE ("-cpu");
--
1.9.3
Pino Toscano
2014-Aug-14 15:30 UTC
Re: [Libguestfs] [PATCH] launch: direct: Only issue Debian /dev/kvm group warning if /dev/kvm wasn't openable (RHBZ#1130189).
On Thursday 14 August 2014 15:18:10 Richard W.M. Jones wrote:> This warning was meant for the case where /dev/kvm is inaccessible and > the user must add themselves to a special group. > > However we didn't take into account whether /dev/kvm was openable in > this test. If it's openable, no point issuing the warning. > > Move the is_openable ("/dev/kvm") test earlier, and don't issue the > warning if that was successful. > --- > src/launch-direct.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/src/launch-direct.c b/src/launch-direct.c > index 3bae254..3a8f2b2 100644 > --- a/src/launch-direct.c > +++ b/src/launch-direct.c > @@ -289,11 +289,19 @@ launch_direct (guestfs_h *g, void *datav, const > char *arg) return -1; > } > > + /* Try to guess if KVM is available. We are just checking that > + * /dev/kvm is openable. That's not reliable, since /dev/kvm > + * might be openable by qemu but not by us (think: SELinux) in > + * which case the user would not get hardware virtualization, > + * although at least shouldn't fail. > + */ > + has_kvm = is_openable (g, "/dev/kvm", O_RDWR|O_CLOEXEC); > + > force_tcg = guestfs___get_backend_setting_bool (g, "force_tcg"); > if (force_tcg == -1) > return -1; > > - if (!force_tcg) > + if (!has_kvm && !force_tcg) > debian_kvm_warning (g); > > guestfs___launch_send_progress (g, 0); > @@ -411,14 +419,6 @@ launch_direct (guestfs_h *g, void *datav, const > char *arg) > warning (g, "qemu debugging is enabled, connect gdb to tcp::1234 > to begin"); > } > > - /* Try to guess if KVM is available. We are just checking that > - * /dev/kvm is openable. That's not reliable, since /dev/kvm > - * might be openable by qemu but not by us (think: SELinux) in > - * which case the user would not get hardware virtualization, > - * although at least shouldn't fail. > - */ > - has_kvm = is_openable (g, "/dev/kvm", O_RDWR|O_CLOEXEC); > - > cpu_model = guestfs___get_cpu_model (has_kvm && !force_tcg); > if (cpu_model) { > ADD_CMDLINE ("-cpu");LGTM. -- Pino Toscano