qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [qemu-devel][RFC] Enable usb with default options


From: Anthony Liguori
Subject: Re: [Qemu-devel] [qemu-devel][RFC] Enable usb with default options
Date: Thu, 07 Jun 2012 09:15:34 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1

On 06/07/2012 05:13 AM, Benjamin Herrenschmidt wrote:
On Wed, 2012-06-06 at 13:42 +0800, Anthony Liguori wrote:
On 06/06/2012 11:31 AM, Benjamin Herrenschmidt wrote:
On Wed, 2012-06-06 at 10:52 +0800, li zhang wrote:
Hi Anthony,


Any comment on this?

Allright, this is all quite confusing...

He's what I think should happen:

When no option is passed -at-all-, we should have vga std and usb ohci +
usb mouse + usb ps2.

When -nodefault is passed, we should have none of the above.

-nodefault is a pretty ugly hack.  I don't think there's any good reason to
involve -nodefault into this discussion.

Well, it's pretty fundamental to how libvirt does thing afaik...

Take pseries, by "default" today it has a vscsi, a vterm etc.... but
with -nodefault, none of this so libvirt can create them manually.

You misunderstand what I'm saying.

-nodefault is a dumb option. It's semantics are poorly defined because it depends on machine. Further complicating those semantics by adding more magic for -M spapr just makes the situation worse.

I'm suggesting to make use of the -machine option to allow usb to be disabled.  
So:

qemu-system-ppc64 -machine type=spapr,usb=off

libvirt can still happily name the usb controller whatever it wants. But the end result is a less magical command line.

Regards,

Anthony Liguori


The problem is that for things created "by default", libvirt then makes
horrible assumptions about the default 'names' and bus names as well,
which is why it's generally somewhat saner to let it create the machine
from scratch (well, sorry for putting "sane" and "libvirt" in the same
sentence but you get my idea I think :-)

-vga should only affect vga (a shortcut for -device
pick_your_vga_poison)

Ack.

(Note: This is in reference to our current internal patch which
automagically adds OHCI and USB kbd + mouse when you do -vga, that's not
something that should survive upstream).

-usb should be essentially useless by default unless -nodefault is
passed in which case it is necessary to enable usb support, and -device
(or equivalent) to manually add the keyboard and mouse (libvirt).

If you want pseries to always have usb, just make it there by default and yeah,
-usb would be useless.  If you want the option to not have usb, introduce a
machine option I guess.

Ah, I'm not familiar with "machine options" ... or do you mean another
machine type ? ie -M pseries_nousb ? :-)

The problem with things like USB by default is that libvirt will fuckup
(at least that's my understanding from what Li says) bcs it's going to
try to create a separate USB bus and can't seem to figure out how to
reference the existing one, etc...  In fact it even tries to re-use the
PCI bus/dev where the original OHCI is created an that clashes.

I think it's over thinking it though.  There's little harm in having a usb
controller present all the time.

That makes more sense I agree, I'm just annoyed by the whole libvirt
business which seems to have some pretty hard assumptions that with
-nodefault you don't get anything by default, and I think it makes some
sense to keep that option around.

Cheers,
Ben.

Regards,

Anthony Liguori


That's the best I can think of ... however it might be a bit tricky
seeing how qemu does things in vl.c at the moment, we might want to
introduce a default_usb variable which is used to set usb_enabled.

BTW. The mac models should essentially behave the same, at least the
64-bit one (32-bit supports CUDA for keyboard/mouse so USB isn't
strictly necessary).

Cheers,
Ben.

Thanks.

On Tue, Jun 5, 2012 at 5:48 PM, li zhang<address@hidden>   wrote:
          Hi all,

          For pseries, when creating VMs with "-vga std",
          it requires usb mouse and usb kbd devices to be added.

          But with default options, vga is enabled and usb is disabled.
          User may use default options as the following commands:

          $qemu -M pseries

          If vga is enabled, usb mouse and usb kbd is disabled,
          the mouse and kbd can't be used. So it's very hard for
          users to use.

          I think it's necessary to enable usb with default options.

          Any idea about that?
          Your comments  are very appreciated. :)

          Thanks.
           -Li




--


Best Regards
-Li










reply via email to

[Prev in Thread] Current Thread [Next in Thread]