On 06/16/2015 10:12 AM, Moshe Levi wrote: > > Hi, > > > > I was playing with the nodedev-dumpxml to see the supported offload > NIC capabilities, and > > It seem that if I disable one of offloading capabilities using ethtool > command nodedev-dumpxml it still return > > the feature as enabled. To get the correct offloading capabilities I > have to restart libvirtd. > > I was wandering if that is an expected behavior in lbivirt . >
the nodedevice driver caches all the information it gets from udev, and tries to rely on udev generating events when something changes. In general this is a bad idea, and has led to at least 2 bug reports I can think of. The function update_caps() in the nodedev driver is intended to be filled in with code to update those attributes of a device that don't get properly updated via udev event responses. It looks like all that would be required in your situation would be to add a call to virNetDevGetFeatures() to the VIR_NODE_DEV_CAP_NET case of the switch in that function. It's complicated a bit by the fact that virNetDevGetFeatures() leaks any existing bitmap of features when it's called. I'm sending a short patch that should fix your problem, which should show up on the list in a few minutes. > > > Please see example below with the rx capabilities disabled. > > > > virsh # nodedev-dumpxml net_enp4s0_f4_52_14_11_73_81 > > <device> > > <name>net_enp4s0_f4_52_14_11_73_81</name> > > <path>/sys/devices/pci0000:00/0000:00:02.0/0000:04:00.0/net/enp4s0</path> > > <parent>pci_0000_04_00_0</parent> > > > <capability > type='net'> > > <interface>enp4s0</interface> > > > <address>f4:52:14:11:73:81</address> > > > <link speed='40000' > state='up'/> > > <feature > name='rx'/> > > <feature > name='tx'/> > > <feature name='sg'/> > > > <feature > name='tso'/> > > <feature > name='gso'/> > > <feature > name='gro'/> > > <feature > name='rxvlan'/> > > <feature > name='txvlan'/> > > <feature > name='rxhash'/> > > > <capability > type='80203'/> > > </capability> > > > </device> > > ethtool -K enp4s0 rx off > > virsh # nodedev-dumpxml net_enp4s0_f4_52_14_11_73_81 > > <device> > > <name>net_enp4s0_f4_52_14_11_73_81</name> > > <path>/sys/devices/pci0000:00/0000:00:02.0/0000:04:00.0/net/enp4s0</path> > > <parent>pci_0000_04_00_0</parent> > > <capability > type='net'> > > <interface>enp4s0</interface> > > > <address>f4:52:14:11:73:81</address> > > > <link speed='40000' > state='up'/> > > <feature > name='rx'/> > > <feature > name='tx'/> > > <feature > name='sg'/> > > <feature > name='tso'/> > > <feature name='gso'/> > > > <feature > name='gro'/> > > <feature > name='rxvlan'/> > > <feature name='txvlan'/> > > > <feature > name='rxhash'/> > > > <capability > type='80203'/> > > </capability> > > > </device> > > > > > > virsh # > > [root@r-ae-host05 bin]# ps -ef | grep libvirt > > root 16743 23086 0 16:43 pts/2 00:00:00 ../sbin/libvirtd > > root 17440 23086 0 16:47 pts/2 00:00:00 grep --color=auto libvirt > > [root@r-ae-host05 bin]# kill 16743 > > [root@r-ae-host05 bin]# ../sbin/libvirtd & > > [2] 17489 > > [1] Done ../sbin/libvirtd > > [root@r-ae-host05 bin]# > > [root@r-ae-host05 bin]# > > [root@r-ae-host05 bin]# ./virsh > > > > virsh # nodedev-dumpxml net_enp4s0_f4_52_14_11_73_81 > > <device> > > <name>net_enp4s0_f4_52_14_11_73_81</name> > > > <path>/sys/devices/pci0000:00/0000:00:02.0/0000:04:00.0/net/enp4s0</path> > > <parent>pci_0000_04_00_0</parent> > > <capability type='net'> > > <interface>enp4s0</interface> > > <address>f4:52:14:11:73:81</address> > > <link speed='40000' state='up'/> > > <feature name='tx'/> > > <feature name='sg'/> > > <feature name='tso'/> > > <feature name='gso'/> > > <feature name='gro'/> > > <feature name='rxvlan'/> > > <feature name='txvlan'/> > > <feature name='rxhash'/> > > <feature name='rdma'/> > > <capability type='80203'/> > > </capability> > > </device> > > > > > > Thanks, > > Moshe Levi. > > > > > > -- > libvir-list mailing list > libvir-list@redhat.com > https://www.redhat.com/mailman/listinfo/libvir-list
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list