Bug 1040334

Summary: should not hot add vioserialport with nr=0
Product: Red Hat Enterprise Linux 7 Reporter: Mike Cao <bcao>
Component: qemu-kvmAssignee: Amit Shah <amit.shah>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, bcao, hhuang, juzhang, mdeng, michen, qzhang, rhod, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-26 07:47:20 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 Mike Cao 2013-12-11 08:43:36 UTC
Description of problem:
nr=0 is reserved for virtconsole ,shouldn't be used for vioserialport .but it can be added if I exec device_add virtserialport twice

Version-Release number of selected component (if applicable):
3.10.0-50.el7.x86_64
qemu-kvm-rhev-1.5.3-19.el7.x86_64
seabios-bin-1.7.2.2-4.el7.noarch
sgabios-bin-0.20110622svn-3.el7.noarch
seabios-1.7.2.2-4.el7.x86_64


How reproducible:
100%

Steps to Reproduce:
1.Start VM w/ virtio-serial-pci
/usr/libexec/qemu-kvm -M pc-i440fx-rhel7.0.0 -cpu SandyBridge -enable-kvm -m 2G -smp 2,cores=2 -name bcao_win-7-32-netkvm -uuid 884e673a-1b4a-4385-a522-b3cc35ef4e18 -rtc base=localtime,clock=host,driftfix=slew -drive file=win8-64.qcow2,if=none,media=disk,serial=aaabbbccc,werror=stop,rerror=stop,cache=none,format=qcow2,id=drive-disk0 -device ide-drive,bus=ide.0,unit=1,physical_block_size=4096,logical_block_size=512,drive=drive-disk0,id=disk0 -drive file=/root/en_windows_8_enterprise_x64_dvd_917522.iso,if=none,media=cdrom,id=aa -device ide-drive,id=aa1,drive=aa,bootindex=1 -drive file=/usr/share/virtio-win/virtio-win.iso,media=cdrom,if=none,id=bb -device ide-drive,id=bb1,drive=bb -netdev tap,vhost=on,id=netdev0 -device e1000,netdev=netdev0,id=nic1,mac=1a:46:0b:ca:bc:7b -vnc :1 -vga std -monitor stdio -usb -device usb-tablet,id=tablet0 -global PIIX4_PM.disable_s3=0 -global PIIX_PM.disable_s4=0 -monitor unix:/tmp/tt,server,nowait -device virtio-serial-pci,id=serial0 -chardev socket,path=/tmp/socket,server,nowait,id=chardev0 -device virtserialport,id=port0,name=com.redhat.rhevm.vdsm,chardev=chardev0

2.(qemu)info qtree

3.(qemu)chardev-add socket,path=/tmp/socket1,server,nowait,id=chardev1
4.(qemu)device_add  virtserialport,id=port1,name=com.redhat.test,chardev=chardev1,nr=0

5.(qemu)info qtree

6.Repeat step4 again

7.(qemu)info qtree

Actual results:
after step 2:
  dev: virtio-serial-pci, id "serial0"
        ioeventfd = on
        vectors = 2
        class = 0x780
        indirect_desc = on
        event_idx = on
        max_ports = 31
        addr = 04.0
        romfile = <null>
        rombar = 1
        multifunction = off
        command_serr_enable = on
        class Class 0780, addr 00:04.0, pci id 1af4:1003 (sub 1af4:0003)
        bar 0: i/o at 0xc060 [0xc07f]
        bar 1: mem at 0xfebf1000 [0xfebf1fff]
        bus: virtio-bus
          type virtio-pci-bus
          dev: virtio-serial-device, id ""
            max_ports = 31
            bus: serial0.0
              type virtio-serial-bus
              dev: virtserialport, id "port0"
                chardev = chardev0
                nr = 1
                name = "com.redhat.rhevm.vdsm"
                port 1, guest off, host off, throttle off

After step 3 , chardev can be added successfully
After step 4 ,
    It prompts "Port number 0 on virtio-serial devices reserved for virtconsole                  devices for backward compatibility.
                Device initialization failed.
                Device 'virtserialport' could not be initialized"

After step5 ,results same as step2

After step6 ,it prompts "Property 'virtserialport.chardev' can't take value 'chardev1', it's in use"

After step7 :it shows nr =4294967295
  bus: virtio-bus
          type virtio-pci-bus
          dev: virtio-serial-device, id ""
            max_ports = 31
            bus: serial0.0
              type virtio-serial-bus
              dev: virtserialport, id "ཫCw"
                chardev = <null>
                nr = 4294967295
                name = "com.redhat.test"
                port -1, guest off, host off, throttle off
              dev: virtserialport, id "port0"
                chardev = chardev0
                nr = 1
                name = "com.redhat.rhevm.vdsm"
                port 1, guest off, host off, throttle off






Expected results:
after step 6, results should same as after step4
After step7 ,results should same as after step2 & step5

Additional info:
Try to boot guest w/ virtserialport with nr=0 ,failed to start .

Comment 2 Amit Shah 2014-01-07 09:05:58 UTC
(In reply to Mike Cao from comment #0)
> Description of problem:
> nr=0 is reserved for virtconsole ,shouldn't be used for vioserialport .but
> it can be added if I exec device_add virtserialport twice
> 
> Version-Release number of selected component (if applicable):
> 3.10.0-50.el7.x86_64
> qemu-kvm-rhev-1.5.3-19.el7.x86_64
> seabios-bin-1.7.2.2-4.el7.noarch
> sgabios-bin-0.20110622svn-3.el7.noarch
> seabios-1.7.2.2-4.el7.x86_64
> 
> 
> How reproducible:
> 100%
> 
> Steps to Reproduce:
> 1.Start VM w/ virtio-serial-pci
> /usr/libexec/qemu-kvm -M pc-i440fx-rhel7.0.0 -cpu SandyBridge -enable-kvm -m
> 2G -smp 2,cores=2 -name bcao_win-7-32-netkvm -uuid
> 884e673a-1b4a-4385-a522-b3cc35ef4e18 -rtc
> base=localtime,clock=host,driftfix=slew -drive
> file=win8-64.qcow2,if=none,media=disk,serial=aaabbbccc,werror=stop,
> rerror=stop,cache=none,format=qcow2,id=drive-disk0 -device
> ide-drive,bus=ide.0,unit=1,physical_block_size=4096,logical_block_size=512,
> drive=drive-disk0,id=disk0 -drive
> file=/root/en_windows_8_enterprise_x64_dvd_917522.iso,if=none,media=cdrom,
> id=aa -device ide-drive,id=aa1,drive=aa,bootindex=1 -drive
> file=/usr/share/virtio-win/virtio-win.iso,media=cdrom,if=none,id=bb -device
> ide-drive,id=bb1,drive=bb -netdev tap,vhost=on,id=netdev0 -device
> e1000,netdev=netdev0,id=nic1,mac=1a:46:0b:ca:bc:7b -vnc :1 -vga std -monitor
> stdio -usb -device usb-tablet,id=tablet0 -global PIIX4_PM.disable_s3=0
> -global PIIX_PM.disable_s4=0 -monitor unix:/tmp/tt,server,nowait -device
> virtio-serial-pci,id=serial0 -chardev
> socket,path=/tmp/socket,server,nowait,id=chardev0 -device
> virtserialport,id=port0,name=com.redhat.rhevm.vdsm,chardev=chardev0
> 
> 2.(qemu)info qtree
> 
> 3.(qemu)chardev-add socket,path=/tmp/socket1,server,nowait,id=chardev1
> 4.(qemu)device_add 
> virtserialport,id=port1,name=com.redhat.test,chardev=chardev1,nr=0
> 
> 5.(qemu)info qtree
> 
> 6.Repeat step4 again
> 
> 7.(qemu)info qtree
> 
> Actual results:
> after step 2:
>   dev: virtio-serial-pci, id "serial0"
>         ioeventfd = on
>         vectors = 2
>         class = 0x780
>         indirect_desc = on
>         event_idx = on
>         max_ports = 31
>         addr = 04.0
>         romfile = <null>
>         rombar = 1
>         multifunction = off
>         command_serr_enable = on
>         class Class 0780, addr 00:04.0, pci id 1af4:1003 (sub 1af4:0003)
>         bar 0: i/o at 0xc060 [0xc07f]
>         bar 1: mem at 0xfebf1000 [0xfebf1fff]
>         bus: virtio-bus
>           type virtio-pci-bus
>           dev: virtio-serial-device, id ""
>             max_ports = 31
>             bus: serial0.0
>               type virtio-serial-bus
>               dev: virtserialport, id "port0"
>                 chardev = chardev0
>                 nr = 1
>                 name = "com.redhat.rhevm.vdsm"
>                 port 1, guest off, host off, throttle off
> 
> After step 3 , chardev can be added successfully
> After step 4 ,
>     It prompts "Port number 0 on virtio-serial devices reserved for
> virtconsole                  devices for backward compatibility.
>                 Device initialization failed.
>                 Device 'virtserialport' could not be initialized"
> 
> After step5 ,results same as step2
> 
> After step6 ,it prompts "Property 'virtserialport.chardev' can't take value
> 'chardev1', it's in use"

This is due to bug 1038914.

> After step7 :it shows nr =4294967295

This is really weird.

It doesn't reproduce upstream.

Comment 3 Amit Shah 2014-01-08 10:05:49 UTC
> > After step7 :it shows nr =4294967295
> 
> This is really weird.
> 
> It doesn't reproduce upstream.

This is fixed by bug 1003773.  If you confirm, we can just close this as a dup.

Comment 4 Mike Cao 2014-01-26 07:46:19 UTC
(In reply to Amit Shah from comment #3)
> > > After step7 :it shows nr =4294967295
> > 
> > This is really weird.
> > 
> > It doesn't reproduce upstream.
> 
> This is fixed by bug 1003773.  If you confirm, we can just close this as a
> dup.

it has been fixed in qemu-kvm-rhev-1.5.3-39.el7.x86_64

Comment 5 Mike Cao 2014-01-26 07:47:20 UTC

*** This bug has been marked as a duplicate of bug 1003773 ***