From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Burakov, Anatoly" Subject: Re: [PATCH v2] net/ixgbe: fix busy polling while fiber link update Date: Wed, 7 Nov 2018 15:52:44 +0000 Message-ID: References: <20180831123824eucas1p1cd2981c716c4764703e24c3eeb4d33c7~P_GOOSRuf0867908679eucas1p1K@eucas1p1.samsung.com> <20181101160459.23586-1-i.maximets@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Wenzhuo Lu , Konstantin Ananyev , Laurent Hardy , Wei Dai , Ferruh Yigit , stable@dpdk.org To: Ilya Maximets , dev@dpdk.org, Qi Zhang Return-path: In-Reply-To: <20181101160459.23586-1-i.maximets@samsung.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 01-Nov-18 4:04 PM, Ilya Maximets wrote: > If the multispeed fiber link is in DOWN state, ixgbe_setup_link > could take around a second of busy polling. This is highly > inconvenient for the case where single thread periodically > checks the link statuses. For example, OVS main thread > periodically updates the link statuses and hangs for a really > long time busy waiting on ixgbe_setup_link() for a DOWN fiber > ports. For case with 3 down ports it hangs for a 3 seconds and > unable to do anything including packet processing. > Fix that by shifting that workaround to a separate thread by > alarm handler that will try to set up link if it is DOWN. > > Fixes: c12d22f65b13 ("net/ixgbe: ensure link status is updated") > CC: stable@dpdk.org > > Signed-off-by: Ilya Maximets > --- On my setup, this commit breaks ixgbe init in pktgen 3.5.7: ixgbe_dev_start(): failure in ixgbe_dev_start(): -15 !PANIC!: rte_eth_dev_start: port=0, Input/output error PANIC in pktgen_config_ports(): rte_eth_dev_start: port=0, Input/output error6: [build/DPDK/pktgen(_start+0x2a) [0x560880ec838a]] 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fabc654cb97]] 4: [build/DPDK/pktgen(main+0xe77) [0x560880ec0357]] 3: [build/DPDK/pktgen(pktgen_config_ports+0x1cf0) [0x560880ef53e0]] 2: [build/DPDK/pktgen(__rte_panic+0xc5) [0x560880eb11b4]] 1: [build/DPDK/pktgen(rte_dump_stack+0x2e) [0x560880fde69e]] Aborted -- Thanks, Anatoly