[dpdk-dev] [PATCH] net/mlx5: fix link state update

Benoit Ganne (bganne) bganne at cisco.com
Mon Mar 30 11:55:44 CEST 2020


> From: Matan Azrad <matan at mellanox.com>

>> From: Benoît Ganne
>> mlx5 PMD refuses to update link state if link speed is defined but
>> status is down or if link speed is undefined but status is up,
>> even if the ioctl() succeeded.
>> This prevents application to detect link up/down event, especially
>> when the link speed is not correctly detected.

> Do you use the wait option? Or no wait?

We are using the no wait option.

>> As link speed is nice to have whereas link status is mandatory for
>> operations, always update link state regardless of link speed.
>> The application can then check link speed if needs be.

> Is it documented well? I didn't find doc\description says link speed is
> best effort.
> PMD cannot guess whether link speed is mandatory for the user or not....

I do not think it is documented and I suppose at the end of the day it depends from the HW and configurations...
My commit message is misleading, my apologizes. What I meant was to let the app decide whether it should retry or not, based on the data it gets.
Right now, the PMD *prevents* the app to get link state if the link speed is undefined even if the app does not care about link speed. It makes an assumption on behalf of the apps. Moreover, it seems to be one of the few PMDs to make this assumption: at least the mlx4 PMD and the i40e PMD does not seem to make this assumption.
This is a problem for our app (fd.io VPP) but I was also told about other apps having the same issue too.

> I think, at least you should update ethdev relevant API descriptions and
> get agreement from more PMD maintainers...

I hope to get feedback 😊 it is precisely the goal of this.

ben


More information about the dev mailing list