DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Gaëtan Rivet" <gaetan.rivet@6wind.com>
To: Matan Azrad <matan@mellanox.com>
Cc: dev@dpdk.org, stable@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] net/failsafe: fix reconfiguration
Date: Mon, 12 Feb 2018 19:42:11 +0100	[thread overview]
Message-ID: <20180212184211.nmjzwqmbf3i6z7eq@bidouze.vm.6wind.com> (raw)
In-Reply-To: <1518370054-12578-1-git-send-email-matan@mellanox.com>

Hi Matan,

On Sun, Feb 11, 2018 at 05:27:34PM +0000, Matan Azrad wrote:
> Fail-safe PMD manages the states of its sub-devices gradually:
> DEV_UNDEFINED, DEV_PARSED, DEV_PROBED, DEV_ACTIVE, DEV_STARTED.
> 
> When the sub-device arguments successfully was parsed, the state is
> raised from DEV_UNDEFINED to DEV_PARSED.
> When the sub-device successfully was probed, the state is raised from
> DEV_PARSED to DEV_PROBED.
> When the sub-device successfully was configured by
> rte_eth_dev_configure(), the state is raised from DEV_PROBED to
> DEV_ACTIVE.
> When the sub-device successfully was started by rte_eth_dev_start(), the
> state is raised from DEV_ACTIVE to DEV_STARTED.
> 
> When the sub-device successfully was stopped by rte_eth_dev_stop(), the
> state is degraded from DEV_STARTED to DEV_ACTIVE.
> When the sub-device successfully was closed by rte_eth_dev_close(), the
> state is degraded from DEV_ACTIVE to DEV_PROBED.
> When the sub-device successfully was removed by
> rte_eal_hotplug_remove(), the state is degraded from DEV_PROBED to
> DEV_UNDEFINED.
> 
> Fail-safe dev_configure() operation calls to its sub-devices
> dev_configure() operation, but only for sub-devices which are in
> DEV_PROBED state, means that sub-devices which are in DEV_ACTIVE state
> because the application triggered dev_stop() operation cannot be
> reconfigured again by dev_configure() operation which is really
> problematic when application wants to reconfigure its ports.
> Actually, the application may get success report when some of the
> sub-devices are not in the wanted configuration.
> 
> The current behavior of fail-safe dev_configure() is correct only for
> the first time dev_configure() is triggered by the application or for
> sub-device synchronization in plug-in event, but it ignores the option
> for reconfiguration from application side.
> 
> Allow calling to sub-devices dev_configure() operations also in
> DEV_ACTIVE state when the call was triggered by the application.
> 
> Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Matan Azrad <matan@mellanox.com>

The commit log is too verbose, but otherwise the issue is real and the
fix correct.

Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>

> ---
> Based on previous series, "fix hotplug races".
> 
>  drivers/net/failsafe/failsafe_ops.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
> index fe64c68..057e435 100644
> --- a/drivers/net/failsafe/failsafe_ops.c
> +++ b/drivers/net/failsafe/failsafe_ops.c
> @@ -110,7 +110,8 @@
>  		int lsc_interrupt = 0;
>  		int lsc_enabled;
>  
> -		if (sdev->state != DEV_PROBED)
> +		if (sdev->state != DEV_PROBED &&
> +		    !(PRIV(dev)->alarm_lock == 0 && sdev->state == DEV_ACTIVE))
>  			continue;
>  
>  		rmv_interrupt = ETH(sdev)->data->dev_flags &
> -- 
> 1.8.3.1
> 

-- 
Gaëtan Rivet
6WIND

  reply	other threads:[~2018-02-12 18:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-11 17:27 Matan Azrad
2018-02-12 18:42 ` Gaëtan Rivet [this message]
2018-02-13 16:15   ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180212184211.nmjzwqmbf3i6z7eq@bidouze.vm.6wind.com \
    --to=gaetan.rivet@6wind.com \
    --cc=dev@dpdk.org \
    --cc=matan@mellanox.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).