Bug 1397940
| Summary: | Gathers network statistics of openvswitch vhostuser interfaces | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Mehdi ABAAKOUK <mabaakou> |
| Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
| Status: | CLOSED ERRATA | QA Contact: | chhu |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.4 | CC: | ailan, atelang, chhu, dyuan, fbaudin, jdenemar, jsuchane, lhuang, mprivozn, rbalakri, xuzhang, yalzhang |
| Target Milestone: | rc | Keywords: | Upstream |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-3.0.0-1.el7 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-08-01 17:19:14 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: | 1459091 | ||
| Bug Blocks: | |||
|
Description
Mehdi ABAAKOUK
2016-11-23 15:47:14 UTC
Some discution have been started upstream: https://www.redhat.com/archives/libvir-list/2016-November/msg00915.html I've just pushed patches upstream:
commit e0d893e86df2daa51b88fdb5f0195fec279da99f
Author: Mehdi Abaakouk <sileht>
AuthorDate: Fri Nov 18 23:51:15 2016 +0100
Commit: Michal Privoznik <mprivozn>
CommitDate: Fri Dec 9 10:28:07 2016 +0100
Move virstat.c code to virnetdevtap.c
This is just a code move of virstat.c to virnetdevtap.c
commit 9b6de7c506c1bfc76fdcb9a42f990b699fe18d2e
Author: Mehdi Abaakouk <sileht>
AuthorDate: Fri Nov 18 23:51:14 2016 +0100
Commit: Michal Privoznik <mprivozn>
CommitDate: Fri Dec 9 10:27:56 2016 +0100
virstat: fix signature of virstat helper
In preparation to the code move to virnetdevtap.c, this change:
* renames virNetInterfaceStats to virNetDevTapInterfaceStats
* changes 'path' to 'ifname', to use the same vocable as other
method in virnetdevtap.c.
* Add the attributes checker
commit 013df874db7e3e4b4f8a8fa25e068da776e0e2c7
Author: Mehdi Abaakouk <sileht>
AuthorDate: Fri Nov 18 23:51:13 2016 +0100
Commit: Michal Privoznik <mprivozn>
CommitDate: Fri Dec 9 10:23:09 2016 +0100
Gathering vhostuser interface stats with ovs
When vhostuser interfaces are used, the interface statistics
are not available in /proc/net/dev.
This change looks at the openvswitch interfaces statistics
tables to provide this information for vhostuser interface.
Note that in openvswitch world drop/error doesn't always make sense
for some interface type. When these informations are not available we
set them to 0 on the virDomainInterfaceStats.
Signed-off-by: Michal Privoznik <mprivozn>
v2.5.0-57-ge0d893e86
Hi, Michal
I tried to verify this bug, however, when I use 'virsh domifstat <domain_name>',
I can't get the interface name.
# virsh domiflist r7-4t1
Interface Type Source Model MAC
-------------------------------------------------------
- vhostuser - virtio 52:54:01:93:55:db
And then, I can't get the statistics of this interface by `virsh domifstat <domain_name> <interface>`
Will you please help to have a look at this problem? Thank you!
You can find more details in below:
Try to verify the bug on packages:
libvirt-3.2.0-5.el7.x86_64
qemu-kvm-rhev-2.9.0-4.el7.x86_64
kernel-3.10.0-660.el7.x86_64
Test steps:
1. Prepare 2 guests like this:
guest1:
<memoryBacking>
<hugepages>
<page size='2048' unit='KiB'/>
</hugepages>
</memoryBacking>
......
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>Broadwell</model>
......
<feature policy='require' name='abm'/>
<numa>
<cell id='0' cpus='0-1' memory='1048576' unit='KiB' memAccess='shared'/>
</numa>
</cpu>
......
<interface type='vhostuser'>
<mac address='52:54:01:93:55:db'/>
<source type='unix' path='/var/run/openvswitch/vhost-user1' mode='client'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</interface>
guest2: with path='/var/run/openvswitch/vhost-user2'
2. Start the guests
# virsh start r7-4t1
Domain r7-4t1 started
# virsh start r7-4t2
Domain r7-4t2 started
# virsh list --all
Id Name State
----------------------------------------------------
6 r7-4t1 running
7 r7-4t2 running
3. Configure the IP for vNIC
In guest1:
ifconfig eth0 192.168.100.1
In guest2:
# ifconfig eth0 192.168.100.2
4. On one guest ping the other one.
In guest1: ping 192.168.100.2
In guest2: ping 192.168.100.1
5. Check the network statistics
# ovs-vsctl list interface
_uuid : 8725f0de-e8ae-4ac2-abba-0a9ae716c4a2
admin_state : down
......
mac : []
mac_in_use : "00:00:00:00:00:00"
mtu : 1500
name : "vhost-user1"
......
statistics : {rx_bytes=301030, rx_errors=0, rx_packets=1859, tx_bytes=290924, tx_dropped=1, tx_packets=1830}
status : {}
type : dpdkvhostuser
_uuid : a73ae67e-0d16-415a-8c6a-5132e4766d94
admin_state : down
......
mac : []
mac_in_use : "00:00:00:00:00:00"
mtu : 1500
name : "vhost-user2"
......
statistics : {rx_bytes=291266, rx_errors=0, rx_packets=1831, tx_bytes=292630, tx_dropped=50, tx_packets=1809}
status : {}
type : dpdkvhostuser
#ovs-ofctl dump-flows ovsbr0
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=90456.579s, table=0, n_packets=1843, n_bytes=297950, idle_age=2, hard_age=65534, in_port=1 actions=output:2
cookie=0x0, duration=90449.118s, table=0, n_packets=1807, n_bytes=287698, idle_age=0, hard_age=65534, in_port=2 actions=output:1
6. Check the virsh domiflist: no Interface is listed
#virsh domiflist r7-4t1
Interface Type Source Model MAC
-------------------------------------------------------
- vhostuser - virtio 52:54:01:93:55:db
#virsh domiflist r7-4t2
Interface Type Source Model MAC
-------------------------------------------------------
- vhostuser - virtio 52:59:21:13:11:db
7. Can't run virsh domifstat as don't know the interface name.
# virsh domifstat r7-4t1
error: command 'domifstat' requires <interface> option
# virsh domifstat r7-4t1 eth0
error: Failed to get interface stats r7-4t1 eth0
error: invalid argument: invalid path, 'eth0' is not a known interface
(In reply to chhu from comment #6) > Hi, Michal > > I tried to verify this bug, however, when I use 'virsh domifstat > <domain_name>', > I can't get the interface name. > > # virsh domiflist r7-4t1 > Interface Type Source Model MAC > ------------------------------------------------------- > - vhostuser - virtio 52:54:01:93:55:db > > And then, I can't get the statistics of this interface by `virsh domifstat > <domain_name> <interface>` virsh domifstat r7-4t1 vhost-user1 should do the trick. Michal (In reply to Michal Privoznik from comment #7) > (In reply to chhu from comment #6) > > Hi, Michal > > > > I tried to verify this bug, however, when I use 'virsh domifstat > > <domain_name>', > > I can't get the interface name. > > > > # virsh domiflist r7-4t1 > > Interface Type Source Model MAC > > ------------------------------------------------------- > > - vhostuser - virtio 52:54:01:93:55:db > > > > And then, I can't get the statistics of this interface by `virsh domifstat > > <domain_name> <interface>` > > virsh domifstat r7-4t1 vhost-user1 should do the trick. > > Michal Hi, Michal I tried `virsh domifstat r7-4t1 vhost-user1 or vhost-user or eth0`. They are not work. How about file a new bug about: "virsh domiflist return NULL for the vhostuser interface name and source". And then set this one blocked by that bug? Waiting for your reply, thank you! More detail as below: # virsh domifstat r7-4t1 vhostuser1 error: Failed to get interface stats r7-4t1 vhostuser1 error: invalid argument: invalid path, 'vhostuser1' is not a known interface # virsh domifstat r7-4t1 vhostuser error: Failed to get interface stats r7-4t1 vhostuser error: invalid argument: invalid path, 'vhostuser' is not a known interface # virsh domifstat r7-4t1 eth0 error: Failed to get interface stats r7-4t1 eth0 error: invalid argument: invalid path, 'eth0' is not a known interface Regards, chhu (In reply to chhu from comment #8) > (In reply to Michal Privoznik from comment #7) > > (In reply to chhu from comment #6) > > > Hi, Michal > > > > > > I tried to verify this bug, however, when I use 'virsh domifstat > > > <domain_name>', > > > I can't get the interface name. > > > > > > # virsh domiflist r7-4t1 > > > Interface Type Source Model MAC > > > ------------------------------------------------------- > > > - vhostuser - virtio 52:54:01:93:55:db > > > > > > And then, I can't get the statistics of this interface by `virsh domifstat > > > <domain_name> <interface>` > > > > virsh domifstat r7-4t1 vhost-user1 should do the trick. > > > > Michal > > > Hi, Michal > > I tried `virsh domifstat r7-4t1 vhost-user1 or vhost-user or eth0`. > They are not work. > > How about file a new bug about: > "virsh domiflist return NULL for the vhostuser interface name and source". > > And then set this one blocked by that bug? Waiting for your reply, thank you! > > > More detail as below: > # virsh domifstat r7-4t1 vhostuser1 > error: Failed to get interface stats r7-4t1 vhostuser1 > error: invalid argument: invalid path, 'vhostuser1' is not a known interface > > > # virsh domifstat r7-4t1 vhostuser > error: Failed to get interface stats r7-4t1 vhostuser > error: invalid argument: invalid path, 'vhostuser' is not a known interface > > # virsh domifstat r7-4t1 eth0 > error: Failed to get interface stats r7-4t1 eth0 > error: invalid argument: invalid path, 'eth0' is not a known interface > > > Regards, > chhu Thanks Michal's confirm, file bug1459091 for this issue. 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://access.redhat.com/errata/RHEA-2017:1846 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://access.redhat.com/errata/RHEA-2017:1846 |