Bug 1269738

Summary: Vlan table display repeat four times in qmp when queues=4
Product: Red Hat Enterprise Linux 7 Reporter: weliao <weliao>
Component: qemu-kvmAssignee: Vlad Yasevich <vyasevic>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.2CC: ailan, chayang, juzhang, knoel, michen, rbalakri, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.3-108.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1273063 (view as bug list) Environment:
Last Closed: 2016-11-03 20:06:03 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:
Bug Depends On:    
Bug Blocks: 1273063, 1288337    
Attachments:
Description Flags
qmp display none

Description weliao 2015-10-08 06:49:35 UTC
Description of problem:
Check vlan table in rx-filter information when guest starts for qmp when queues=4; Vlan table display repeat four times; if queues=2,Vlan table display repeat two times; if queues=1,Vlan table display one times.

Version-Release number of selected component (if applicable):
3.10.0-319.el7.x86_64
qemu-kvm-1.5.3-104.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.launch a guest with ctrl_vlan=off
-netdev tap,id=hostnet0,vhost=on,queues=2 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:55:66:77:80:8d,bus=pci.0,addr=0x3,mq=on,mrg_rxbuf=on,ctrl_vlan=off
2.Check vlan table in rx-filter information when guest starts.
telnet 10.66.106.66 4567
{"execute":"qmp_capabilities"}
{ "execute": "query-rx-filter", "arguments": { "name": "net0" } }

Actual results:
Vlan table display repeat four times

Expected results:
Vlan table display only one time

Additional info:
please look attachment about display
command:
/usr/libexec/qemu-kvm -name BRIDGE -S -machine pc,accel=kvm,usb=off \
-cpu Opteron_G5 -m 4G -realtime mlock=off \
-smp 4 -uuid fbf56917-5866-48f2-b3fb-5ce2ad294d93 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/rhel7cp1.0.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=discard \
-no-hpet -no-shutdown \
-global PIIX4_PM.disable_s3=1 \
-global PIIX4_PM.disable_s4=1 \
-boot menu=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 \
-drive file=/mnt/rhel712,snapshot=on,cache=none,if=none,id=drive-virtio-disk0,format=qcow2 \
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
-netdev tap,id=hostnet0,vhost=on,queues=4 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:55:66:77:80:8d,bus=pci.0,addr=0x3,vectors=10,mq=on,mrg_rxbuf=on,ctrl_vlan=off \
-chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/rhel7cp1.0.org.qemu.guest_agent.0,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent \
-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 \
-device usb-tablet,id=input0 \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 \
-chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 \
-chardev spicevmc,id=charredir1,name=usbredir \
-device usb-redir,chardev=charredir1,id=redir1 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 \
-msg timestamp=on -monitor stdio \
-qmp tcp:0:4567,server,nowait \
-vnc 0.0.0.0:3


windows2008r2 guests and linux guest all has this issue

Comment 1 weliao 2015-10-08 06:50:44 UTC
Created attachment 1080860 [details]
qmp display

Comment 2 weliao 2015-10-08 06:58:09 UTC
qemu-kvm-rhev-2.3.0-23.el7.x86_64  has no this issue

Comment 4 Vlad Yasevich 2015-10-19 13:46:19 UTC
It isn't just the vlan table, although it is the mostly obvious one (particularly
in rhel7 qemu-kvm package).  All of the device filtering data is duplicated including all the mac address filters and promisc settings.

It is actually possible to reproduce this in upstream as well as qemu-kvm-rhev.
If the qmp command is given without a network name argument, then in a multiqueue
configuration, the same output is given multiple times (once for each queue).

Will clone to qemu-kvm-rhev.

-vlad

Comment 5 Miroslav Rezanina 2016-02-08 10:19:56 UTC
Fix included in qemu-kvm-1.5.3-108.el7

Comment 7 weliao 2016-05-17 06:47:23 UTC
Reproduce this bug with below version:
qemu-kvm-1.5.3-105.el7.x86_64
3.10.0-378.el7.x86_64

Test steps:
1.launch a guest with ctrl_vlan=off
-netdev tap,id=hostnet0,vhost=on,queues=4 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=32:d7:63:b5:a9:54,bus=pci.0,addr=0x3,mq=on,mrg_rxbuf=on,ctrl_vlan=off,vectors=10
2.Check vlan table in rx-filter information when guest starts.
telnet 10.66.106.66 4567
{"execute":"qmp_capabilities"}
{ "execute": "query-rx-filter", "arguments": { "name": "net0" } }

Test result:
Vlan table display repeat four times:
{"return": [{"promiscuous": false, "name": "net1", "main-mac": "32:d7:63:b5:a9:54", "unicast": "normal", "vlan": "all", "vlan-table": [4095, 4094, 4093, 4092, 4091, 4090, 4089, 4088, 4087, 4086, 4085, 4084,.....3,2,1,0]...

So this bug reproduce
---------------------------------------------------------------------------------

Verify this bug with below version:
qemu-kvm-1.5.3-109.el7.x86_64
3.10.0-378.el7.x86_64

The same test steps:
Test result:
[root@dhcp-65-190 Downloads]# telnet 10.66.8.118 4567
Trying 10.66.8.118...
Connected to 10.66.8.118.
Escape character is '^]'.
{"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-109.el7)"}, "capabilities": []}}
{"execute":"qmp_capabilities"}
{"return": {}}

{"timestamp": {"seconds": 1463467473, "microseconds": 265162}, "event": "NIC_RX_FILTER_CHANGED", "data": {"name": "net1", "path": "/machine/peripheral/net1/virtio-backend"}}
{ "execute": "query-rx-filter", "arguments": { "name": "net1" } }
{"return": [{"promiscuous": false, "name": "net1", "main-mac": "32:d7:63:b5:a9:54", "unicast": "normal", "vlan": "all", "vlan-table": [4095, 4094, 4093, 4092, 4091, 4090, 4089, 4088, 4087, 4086, 4085, 4084, 4083, 4082, 4081, 4080, 4079, 4078, 4077, 4076, 4075, 4074, 4073, 4072, 4071, 4070, 4069, 4068, 4067, 4066, 4065, 4064, 4063, 4062, 4061, 4060, 4059, 4058, 4057

no repeat display vlan table, So this bug fix well.

Comment 10 errata-xmlrpc 2016-11-03 20:06:03 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-2585.html