KVM usability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Avi Kivity <avi@xxxxxxxxxx> wrote:

> On 02/26/2010 01:17 PM, Ingo Molnar wrote:
> >Nobody is really 'in charge' of how KVM gets delivered to the user. You
> >isolated the fun kernel part for you and pushed out the boring bits to
> >user-space. So if mundane things like mouse integration sucks 'hey that's a
> >user-space tooling problem', if file integration sucks then 'hey, that's an
> >admin problem', if it cannot be used over the network 'hey, that's an Xorg
> >problem', etc. etc.
> 
> btw, mouse integration works with -usbdevice tablet and recent
> Fedoras, 'it was an X.org driver problem'.
> 
> Really, I don't understand your problems.

I run bleeding edge rawhide on my main desktop so i just tried latest & 
greatest KVM and Qemu bits and started up kvm-qemu with some Fedora and XP 
images i had around:

  2.6.33-0.44.rc8.git0.fc13.x86_64
  qemu-system-x86-0.12.2-6.fc13.x86_64

Here's my experience with it:

 - qemu-kvm starts up with a miniature resolution by default. 640x480 - on my
   1680x1050 laptop screen. It's so small that initially i even overlooked 
   that i started it. It should multiplex pixels up to a reasonable screen 
   size by default.

 - The mouse is trapped straight away by default if you click into it. That's 
   very annoying if you actually try to integrate a guest OS into your desktop 
   - it's not just 'another, slightly weird app' but a sticky, opinionated GUI 
   component that you have to fight with all the time.

 - Once trapped it's not obvious how to untrap the mouse. The qemu window 
   title says:

          QEMU: Press Ctrl-ALT to exit grab

   Of course once you _know_ what a 'grab' is, you'll know where to look.
   At minimum it should say:

          QEMU: Press Ctrl-ALT to exit mouse grab

   But to first-time users it's an annoying trap of the mouse and with no
   obvious place to look for help. [besides, it doesnt tell which Ctrl and
   which ALT to use - it's the left side. The right side Ctrl does not work.]

 - Graphics performance is awful even with the 640x480 miniature version.
   During bootup I can see it drawing single characters. This is a Core2 
   2.8GHz.

 - Sound does not work by default. I have to go dig into command-line options
   to see that i need to add: "-soundhw all". Why isnt sound enabled by 
   default?

 - Qemu images are not integrated into the rest of the desktop. If i click on 
   a Qemu image it says:

     Could not display "/home/mingo/qemu/hda.img".

     The file is of an unknown type.

   10 years of Qemu and its base image format is still 'unknown' ?

 - Random bugs. I tried to boot some old Fedora image i had around, it says:

     spirit:~/qemu> qemu-kvm ./hda-fedora.img 
     kvm: unhandled exit 80000021
     kvm_run returned -22

   Bugs happen, but more important is what a user can do with it. To a user, 
   what does this tell? Is it actionable? Does it give any URL to check? Any bug
   submit mechanism to follow? Does it even tell what the code itself thinks
   that happened? Nope - it just prints that error message (on the console, so 
   to anyone starting it via a clicky interface wouldnt notice that there's 
   something wrong) - and the guest session hanging indefinitely.

 - When it boots up, the Qemu window flips around its size crazily, as the BIOS,
   the bootloader and the OS sets different screen resolutions. To the user that
   technical detail is immaterial, what matters is an amateurish-looking app 
   that flips its window size as if it was an adware popup window trying to 
   avoid being caught.

 - There's no obvious way to activate paravirt drivers on the Windows side.
   There's no friendly "install guest drivers" button to click on with Qemu.

   _Of course_ you will end up emulating hardware in KVM (and passing it through
   to the guest once it's clear that emulation performance sucks) and sooner 
   or later you will end up requesting unreasonable things of the host kernel 
   to achieve that ...

 - Another small detail: there is zero on-screen help (beyond the Ctrl-ALT 
   line) for a newbie to quickly find his way around it. No wiki address, no 
   help, no nothing. There's not even any hint about what this window does. 
   Which guest is it? In what state is that guest?

 - But i'm a more advanced user so i dont need help screens, i knew that the 
   "go full screen" hotkey is:

           LeftCtrl-LeftALT-F

   ... except that it is a one-way road: pressing it for a second time does 
   not restore the window, trapping me in the guest altogether! Ctrl-ALT does 
   not exit the trap either. I had to shut down the guest to get back my X 
   desktop.

etc., etc.

( I could go on and on about finer details of good integration, like the 
  difficulty of integrating host/guest files, networking, no way to quickly 
  attach ISOs via that window, no way to activate networking, sound and no way 
  to snapshot, no way to increase memory size except a command line option. )

etc - but that's not the point really: i only spent 10 minutes on this and i 
didnt try hard at all - _11_ bugs/annoyances from all across the functionality 
spectrum.

And the thing is _me_ reporting bugs does not matter at all in this picture, 
so please dont come with "why didnt you report this?".

_Anyone_ with half a brain who takes a critical look at this virtualization 
solution would notice the same. Still, it's essentially unchanged from 5 years 
ago.

Why is that so? I have outlined my opinion that this is due to the artificial 
package separation / over-modularization and no-one really being in charge of 
"KVM quality as a whole" - and i'm wondering what your theory is how such a 
state of affairs became possible.

I'm not trolling you at all: is it _really_ not obvious to you that the 
KVM/qemu usability status quo honestly sucks, to an unbiased observer?

And AFAICS KVM developers keep concentrating on all the wrong things due to 
that bad split/packaging: writing newer and newer low level kernel patches and 
optimizations which are nice but in large part irrelevant because the 
_fundamental basics_ of usability suck so much ... But to you it's probably 
just another external package so not really something you can do much about, 
right?

Really, the KVM design is so nice in many regards and Qemu has come forward 
leaps and bounds in the past few years as well, how can you miss such basic 
areas of weakness? 'First impression' is the thing that gives you new 
developers - it's any OSS project's bread and butter.

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux