[libvirt] virtio serial device problem

Li Zhang zhlcindy at gmail.com
Tue May 7 13:57:44 UTC 2013


On 2013年05月07日 21:05, Alexey Kardashevskiy wrote:
> On 05/07/2013 07:50 PM, Paolo Bonzini wrote:
>> Il 07/05/2013 09:20, Li Zhang ha scritto:
>>> Hi all,
>>>
>>> When we use the latest version of QEMU to build ovirt,
>>> we get this error reported from libvirt.
>> What QEMU commit is this?
>
> b3e6d591b05538056d665572f3e3bbfb3cbb70e7
>

Our QEMU tree syncs with upstream, right?

>> It might have been fixed already.
> Hm. From what I see, it is all correct from the qemu side, the problem is
> in libvirt which does not know about "virtio-pci-bus" yet.
>

Yes, from qtree, virtserialport is under virtio-serial-bus.0.

virtio-serial0.0
|
virtio-serial-bus.0
|
virtserialport

But libvirt set this device on virt-serial0.0 bus directly which is old 
way in QEMU.

virtio-serial0.0
|
virtserialport


>
>> Paolo
>>
>>> qemu-system-ppc64: -device
>>> virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm:
>>>
>>> Bus 'virtio-serial0.0' is full
>>> qemu-system-ppc64: -device
>>> virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm:
>>>
>>> Bus 'virtio-serial0.0' not found
>>>
>>> Libvirt helps create QEMU command line and put virtserialport device to
>>> bus virtio-serial0.0.
>>> For latest version of QEMU, the bus type is changed.
>>>
>>> (qemu) info qtree
>>> bus: main-system-bus
>>>    type System
>>>    dev: spapr-pci-host-bridge, id ""
>>>      index = 0
>>>      buid = 0x800000020000000
>>>      liobn = 0x80000000
>>>      mem_win_addr = 0x100a0000000
>>>      mem_win_size = 0x20000000
>>>      io_win_addr = 0x10080000000
>>>      io_win_size = 0x10000
>>>      msi_win_addr = 0x10090000000
>>>      irq 0
>>>      bus: pci
>>>        type PCI
>>>        dev: virtio-serial-pci, id "virtio-serial0"
>>>          ioeventfd = on
>>>          vectors = 2
>>>          class = 0x780
>>>          indirect_desc = on
>>>          event_idx = on
>>>          max_ports = 31
>>>          addr = 03.0
>>>          romfile = <null>
>>>          rombar = 1
>>>          multifunction = off
>>>          command_serr_enable = on
>>>          class Class 0780, addr 00:03.0, pci id 1af4:1003 (sub 1af4:0003)
>>>          bar 0: i/o at 0xffffffffffffffff [0x1e]
>>>          bar 1: mem at 0xffffffffffffffff [0xffe]
>>>          bus: virtio-serial0.0
>>>            type virtio-pci-bus
>>>            dev: virtio-serial-device, id ""
>>>              max_ports = 31
>>>              bus: virtio-serial-bus.0
>>>                type virtio-serial-bus
>>>                dev: virtserialport, id "channel1"
>>>                  chardev = charchannel1
>>>                  nr = 2
>>>                  name = "org.qemu.guest_agent.0"
>>>                  port 2, guest off, host off, throttle off
>>>                dev: virtserialport, id "channel0"
>>>                  chardev = charchannel0
>>>                  nr = 1
>>>                  name = "com.redhat.rhevm.vdsm"
>>>                  port 1, guest off, host off, throttle off
>>>
>>>
>>> But we tried to replace virtio-serial0.0 with virtio-serial-bus.0,
>>> SLOF crashes. It still doesn't work at all.
>>>
>>> Does anyone know how to use virtserialport in QEMU command line?
>>> If configuration is changed in QEMU, libvirt also needs to change it
>>> accordingly.
>>>
>>> Thanks. :)
>>> --Li
>>>
>>>
>>>
>




More information about the libvir-list mailing list