[dpdk-dev] [PATCH v3 6/6] net/failsafe: fix removed device handling

Gaëtan Rivet gaetan.rivet at 6wind.com
Tue Dec 19 23:21:31 CET 2017


Hi Matan,

On Tue, Dec 19, 2017 at 05:10:15PM +0000, Matan Azrad wrote:
> There is time between the physical removal of the device until
> sub-device PMDs get a RMV interrupt. At this time DPDK PMDs and
> applications still don't know about the removal and may call sub-device
> control operation which should return an error.
> 
> In previous code this error is reported to the application contrary to
> fail-safe principle that the app should not be aware of device removal.
> 
> Add an removal check in each relevant control command error flow and
> prevent an error report to application when the sub-device is removed.
> 
> Fixes: a46f8d5 ("net/failsafe: add fail-safe PMD")
> Fixes: b737a1e ("net/failsafe: support flow API")
> 
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---

<snip>

> +/*
> + * Check if error should be reported to the user.
> + */
> +static inline bool
> +fs_is_error(struct sub_device *sdev, int err)
> +{
> +	/* A device removal shouldn't be reported as an error. */
> +	if (err == 0 || sdev->remove == 1 || err == -EIO)
> +		return false;
> +	return true;
> +}

This is better, thanks.

However is there a reason you did not follow the same pattern as ethdev with
eth_err? I see the two functions as similar in their intent, making them
close to each other would be clearer to a reader being familiar with the
ethdev API and that would be interested in fail-safe.

What do you think?

-- 
Gaëtan Rivet
6WIND


More information about the dev mailing list