[dpdk-dev] a question about the commit "414b202343ce8ad"(bonding: fix initial link status of slave)

wangyunjian wangyunjian at huawei.com
Mon Jan 16 08:25:54 CET 2017


The commit 414b202343ce8ad (bonding: fix initial link status of slave) invokes lsc callback,
the lsc callback may be executed at same time when slave_configure() and bond_ethdev_slave_link_status_change_monitor ()
competing for calling the lsc callback. The panic will be triggered when bond ethdev is started(bonding mode 4).

I think the lsc callback need lock to be protected. My dpdk version is dpdk-16.04.

Dpdk log:
2017-01-16T12:20:49.950294+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_link_status_print[3292]|PMD|: ixgbe_dev_link_status_print(): Port 1: Link Up - speed 10000 Mbps - full-duplex
2017-01-16T12:20:49.950434+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_link_status_print[3301]|PMD|: ixgbe_dev_link_status_print(): PCI Address: 0000:03:00:1
2017-01-16T12:20:50.149944+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_link_status_print[3292]|PMD|: ixgbe_dev_link_status_print(): Port 1: Link Up - speed 10000 Mbps - full-duplex
2017-01-16T12:20:50.150119+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_link_status_print[3301]|PMD|: ixgbe_dev_link_status_print(): PCI Address: 0000:03:00:1
2017-01-16T12:20:59.950180+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.950336+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_rx_queue_setup[2743]|PMD|: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fd3948c0c40 sw_sc_ring=0x7fd3948beb00 hw_ring=0x7fd3948c2d80 dma_addr=0xca44c2d80
2017-01-16T12:20:59.950477+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.950617+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_rx_queue_setup[2743]|PMD|: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fd3948ac5c0 sw_sc_ring=0x7fd3948aa480 hw_ring=0x7fd3948ae700 dma_addr=0xca44ae700
2017-01-16T12:20:59.950766+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.950915+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_rx_queue_setup[2743]|PMD|: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fd394897f40 sw_sc_ring=0x7fd394895e00 hw_ring=0x7fd39489a080 dma_addr=0xca449a080
2017-01-16T12:20:59.951110+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.951252+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_tx_queue_setup[2385]|PMD|: ixgbe_dev_tx_queue_setup(): sw_ring=0x7fd394881c40 hw_ring=0x7fd394885c80 dma_addr=0xca4485c80
2017-01-16T12:20:59.951390+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_tx_function[2193]|PMD|: ixgbe_set_tx_function(): Using simple tx code path
2017-01-16T12:20:59.951531+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.951669+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_tx_queue_setup[2385]|PMD|: ixgbe_dev_tx_queue_setup(): sw_ring=0x7fd39486dac0 hw_ring=0x7fd394871b00 dma_addr=0xca4471b00
2017-01-16T12:20:59.951806+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_tx_function[2193]|PMD|: ixgbe_set_tx_function(): Using simple tx code path
2017-01-16T12:20:59.951944+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.952095+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_tx_queue_setup[2385]|PMD|: ixgbe_dev_tx_queue_setup(): sw_ring=0x7fd394859940 hw_ring=0x7fd39485d980 dma_addr=0xca445d980
2017-01-16T12:20:59.952238+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_tx_function[2193]|PMD|: ixgbe_set_tx_function(): Using simple tx code path
2017-01-16T12:20:59.952376+08:00|debug|ovs-vswitchd[22249]|rte_eth_dev_info_get[1669]|EAL|: port_id=0, nb_ports=3
2017-01-16T12:20:59.952513+08:00|debug|ovs-vswitchd[22249]|ixgbe_dev_tx_queue_setup[2385]|PMD|: ixgbe_dev_tx_queue_setup(): sw_ring=0x7fd3948457c0 hw_ring=0x7fd394849800 dma_addr=0xca4449800
2017-01-16T12:20:59.952652+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_tx_function[2193]|PMD|: ixgbe_set_tx_function(): Using simple tx code path
2017-01-16T12:21:00.006370+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_rx_function[4170]|PMD|: ixgbe_set_rx_function(): Port[0] doesn't meet Vector Rx preconditions or RTE_IXGBE_INC_VECTOR is not enabled
2017-01-16T12:21:00.006510+08:00|debug|ovs-vswitchd[22249]|ixgbe_set_rx_function[4236]|PMD|: ixgbe_set_rx_function(): Rx Burst Bulk Alloc Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on port=0.
2017-01-16T12:21:00.150066+08:00|debug|ovs-vswitchd[22249]|memzone_reserve_aligned_thread_unsafe[146]|EAL|: memzone_reserve_aligned_thread_unsafe(): memzone <RG_slave_1_rx> already exists
2017-01-16T12:21:00.150241+08:00|debug|ovs-vswitchd[22249]|rte_ring_create[204]|RING|: Cannot reserve memory
2017-01-16T12:21:00.150385+08:00|debug|ovs-vswitchd[22249]|bond_mode_8023ad_activate_slave[1001]|PMD|: Slave 1: Failed to create rx ring 'slave_1_rx': File exists


More information about the dev mailing list