[ovs-dev] [ovs-dev, ovs-dev, v4] netdev-dpdk: Configurable Link State Change (LSC) detection mode
Eelco Chaudron
echaudro at redhat.com
Mon Feb 5 16:48:03 UTC 2018
Just finished my review and some basic testing (see other email), so let
me reply to these inline.
On 05/02/18 15:31, Ilya Maximets wrote:
> On 05.02.2018 17:18, Róbert Mulik wrote:
>> Hi Ilya,
>>
>> As I see you are concerned if the code is working, also Eelco mentioned that the configuration change didn't take effect for him, so I retested the patch.
>>
>> I added 2 different types of NICs to OVS on the same server:
>>
>> 1
>> product: 82599ES 10-Gigabit SFI/SFP+ Network Connection
>> It uses ixgbe kernel driver by default
>>
>> 2
>> product: Ethernet Controller XL710 for 40GbE QSFP+
>> It uses i40e kernel driver by default
>>
>> In my setup I used a Dell 630 with kernel 4.4.0-111-generic, and used vfio-pci kernel driver for the NICs.
>>
>> I monitored the link_state of the dpdk interfaces and the interrupt counters of /proc/interrupts.
>>
>> When I changed either the other_config:dpdk-lsc-interrupt part of Open_vSwitch, or the options:dpdk-lsc-interrupt part of the NIC by set or remove,
>> the behavior was correct: the link_state always changed when reinitialization was triggered,
>
> That is the key point. When the reinitialization was actually triggered?
> Was it triggered right after changing the other_config:dpdk-lsc-interrupt ?
> Or you need some additional manipulations to trigger the actual reconfiguration?
Only the configuration change will trigger configuration change. I
tested this with a stable link.
I was using GDB to get the triggers, so added a quick bt:
Breakpoint 4, dpdk_eth_dev_port_config (dev=dev at entry=0x7f1bbaa19e80,
n_rxq=n_rxq at entry=2, n_txq=n_txq at entry=3) at lib/netdev-dpdk.c:712
712 {
#0 dpdk_eth_dev_port_config (dev=dev at entry=0x7f1bbaa19e80,
n_rxq=n_rxq at entry=2, n_txq=n_txq at entry=3) at lib/netdev-dpdk.c:712
#1 0x00000000007f01dd in dpdk_eth_dev_init
(dev=dev at entry=0x7f1bbaa19e80) at lib/netdev-dpdk.c:828
#2 0x00000000007f1974 in netdev_dpdk_reconfigure
(netdev=0x7f1bbaa1af40) at lib/netdev-dpdk.c:3607
#3 0x0000000000752acc in netdev_reconfigure
(netdev=netdev at entry=0x7f1bbaa1af40) at lib/netdev.c:2073
#4 0x0000000000727ba1 in port_reconfigure (port=port at entry=0x2365a50)
at lib/dpif-netdev.c:3341
#5 0x000000000072b959 in reconfigure_datapath
(dp=dp at entry=0x7f2167283010) at lib/dpif-netdev.c:3822
#6 0x000000000072f76c in dpif_netdev_run (dpif=<optimized out>) at
lib/dpif-netdev.c:3963
#7 0x0000000000731cca in dpif_run (dpif=<optimized out>) at lib/dpif.c:466
#8 0x00000000006f298b in type_run (type=<optimized out>) at
ofproto/ofproto-dpif.c:344
#9 0x00000000006df916 in ofproto_type_run
(datapath_type=datapath_type at entry=0x234b560 "netdev") at
ofproto/ofproto.c:1703
#10 0x00000000006cd1df in bridge_run__ () at vswitchd/bridge.c:2941
#11 0x00000000006d5678 in bridge_reconfigure (ovs_cfg=<optimized out>)
at vswitchd/bridge.c:727
#12 0x00000000006d5f21 in bridge_run () at vswitchd/bridge.c:3026
#13 0x00000000006d6880 in main (argc=10, argv=0x7ffe6455edb8) at
vswitchd/ovs-vswitchd.c:120
>> however there were problems with the counters.
>>
>> 1.
>> This NIC worked fine, link_state was OK, interrupt counters were incremented as expected.
>>
>> 2.
>> The link_state was OK, but there were problems with the counters.
Can you explain what you mean with counter problems?
>> With the X710 series there are a few problems related to the link_state and interrupts known by intel too. The faulty behavior can be caused by the combination of
>> the FW of the NIC, the kernel version, the dpdk version, and the i40e kernel driver version (there can be interference between the kernel driver and dpdk driver).
>>
>>
>> After the verification, as I see the code works fine (the events triggered when the options are changed), but the XL710 card has problems with the interrupt configuration.
>>
>> Eelco, I know that you are working with X710 series cards. Did you test the patch on one of them, or on a different type?
>> When (if) you verify the patch, could you please check it on different NICs too?
I have an XL710 card, but for the test I did not check the interrupt
generation part. I was using it before with a hard coded version, so
assumed it would work, are you telling me setting it dynamically (i.e.
changing it multiple times) does not work?
>> Thank you!
>>
>> Regards,
>> Robert
>>
More information about the dev
mailing list