- This add ehci as default usb controller. (always activated)
- Full usb2 withtout usb1 compagnon (Don't need anymore the external usb.cfg) 
as we don't need usb1 anymore

- hotplug/unplug usb-tablet on console task start/stop.

tablet config:
 tablet:0  no tablet
 tablet:1  always tablet
 no config : auto hotplug/unplug at console task

On my old xeon, tablet on usb2 give me 2% less cpu.
Unplugging the tablet give me 6% less cpu.

Signed-off-by: Alexandre Derumier <[email protected]>
---
 PVE/API2/Qemu.pm  |    5 +++++
 PVE/QemuServer.pm |   19 +++++--------------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index cabe2cf..eacda07 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -1100,8 +1100,13 @@ __PACKAGE__->register_method({
            # also redirect stderr (else we get RFB protocol errors)
            my $cmd = ['/bin/nc', '-l', '-p', $port, '-w', $timeout, '-c', 
"$qmstr 2>/dev/null"];
 
+           my $conf = PVE::QemuServer::load_config($vmid);
+           PVE::QemuServer::qemu_deviceadd($vmid, 
"usb-tablet,id=usb-tablet,bus=ehci.0,port=6") if !defined($conf->{tablet});
+
            PVE::Tools::run_command($cmd);
 
+           PVE::QemuServer::qemu_devicedel($vmid, "usb-tablet") if 
!defined($conf->{tablet});
+
            return;
        };
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index ebd7a83..176b068 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2192,23 +2192,13 @@ sub config_to_command {
 
     push @$cmd, '-daemonize';
 
-    my $use_usb2 = 0;
-    for (my $i = 0; $i < $MAX_USB_DEVICES; $i++)  {
-       next if !$conf->{"usb$i"};
-       $use_usb2 = 1;
-    }
     # include usb device config
-    push @$devices, '-readconfig', '/usr/share/qemu-server/pve-usb.cfg' if 
$use_usb2;
+    $pciaddr = print_pci_addr("ehci", $bridges);
+    push @$devices, '-device', "usb-ehci,id=ehci$pciaddr";
 
     # enable absolute mouse coordinates (needed by vnc)
-    my $tablet = defined($conf->{tablet}) ? $conf->{tablet} : 
$defaults->{tablet};
-    if ($tablet) {
-       if ($use_usb2) {
-           push @$devices, '-device', 'usb-tablet,bus=ehci.0,port=6';
-       } else {
-           push @$devices, '-usbdevice', 'tablet';
-       }
-    }
+    my $tablet = $conf->{tablet} if defined($conf->{tablet});
+    push @$devices, '-device', 'usb-tablet,id=usb-tablet,bus=ehci.0,port=6' if 
$tablet;
 
     # host pci devices
     for (my $i = 0; $i < $MAX_HOSTPCI_DEVICES; $i++)  {
@@ -3376,6 +3366,7 @@ sub print_pci_addr {
        net3 => { bus => 0, addr => 21 },
        net4 => { bus => 0, addr => 22 },
        net5 => { bus => 0, addr => 23 },
+       ehci => { bus => 0, addr => 29 },
        #addr29 : usb-host (pve-usb.cfg)
        'pci.1' => { bus => 0, addr => 30 },
        'pci.2' => { bus => 0, addr => 31 },
-- 
1.7.10.4

_______________________________________________
pve-devel mailing list
[email protected]
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to