Bug 1297020

Summary: ppc64 guests default to legacy -usb option instead of -device pci-ohci
Product: Red Hat Enterprise Linux 7 Reporter: Andrea Bolognani <abologna>
Component: libvirtAssignee: Martin Kletzander <mkletzan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.2CC: dyuan, dzheng, gsun, rbalakri
Target Milestone: rcKeywords: Upstream
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-1.3.1-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 18:35:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andrea Bolognani 2016-01-08 18:30:44 UTC
When a ppc64 guest contains

  <controller type='usb' index='0'/>

in its configuration (no model specified), and the UHCI controller
is not available in QEMU, the USB support will be enabled by using
the legacy

  -usb

command line option instead of the newer

  -device pci-ohci

option. This would cause the guest ABI to break if QEMU were ever
to change its default - which is going to happen, see Bug 1284333.

Comment 2 Martin Kletzander 2016-01-09 17:45:06 UTC
Fixed upstream with v1.3.0-215-g8156493d8db9:
commit 8156493d8db95de91dd9ace743df0fd4dff98281
Author: Martin Kletzander <mkletzan>
Date:   Thu Jan 7 16:14:58 2016 +0100

    Fix USB model defaults for ppc64

Comment 4 Dan Zheng 2016-03-11 05:59:37 UTC
Packages:


Steps:
1. Configure a guest XML with below usb controller setting without model specified.

<controller type='usb' index='0'/>

2. Ensure the UHCI controller is not available in QEMU via run below command to check:

# echo -e 'spower-off\r' | 
/usr/libexec/qemu-kvm -nographic -nodefaults -usb -serial stdio|
 grep usb

                    00 0000 (D) : 106b 003f    serial bus [ usb-ohci ]


3. Start the guest successfully and check the qemu command line.
'-device pci-ohci' is used to enable the USB support in the qemu command line instead of '-usb'

# virsh start guest2
Domain guest2 started

# ps -ef|grep qemu-kvm|grep pci-ohci
qemu      70578      1 40 00:21 ?        00:00:21 /usr/libexec/qemu-kvm -name guest2 -S -machine pseries-rhel7.3.0,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 0152f310-c674-4e6c-a6b3-28469f14df01 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-guest2/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on **-device pci-ohci**,id=usb,bus=pci.0,addr=0x2 - ...

Comment 5 Dan Zheng 2016-03-11 06:20:02 UTC
Test packages:
kernel-3.10.0-362.el7.ppc64le
qemu-kvm-rhev-2.5.0-2.el7.ppc64le
libvirt-1.3.2-1.el7.ppc64le

Comment 7 errata-xmlrpc 2016-11-03 18:35:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2577.html