* [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
@ 2018-02-13 22:56 Chas Williams
2018-03-30 16:30 ` Zhang, Helin
2018-04-08 2:05 ` Zhang, Qi Z
0 siblings, 2 replies; 15+ messages in thread
From: Chas Williams @ 2018-02-13 22:56 UTC (permalink / raw)
To: dev; +Cc: wenzhuo.lu, konstantin.ananyev, Charles (Chas) Williams
From: "Charles (Chas) Williams" <chas3@att.com>
dev->data->eth_link isn't updated until the first interrupt. If a
link is carrier down, then this interrupt may never happen. Before we
finished starting the PMD, call ixgbe_dev_link_update() to ensure we
have a valid status.
Signed-off-by: Chas Williams <chas3@att.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 37eb668..27d29dc 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
if (err)
goto error;
+ ixgbe_dev_link_update(dev, 0);
+
skip_link_setup:
if (rte_intr_allow_others(intr_handle)) {
@@ -5033,6 +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_dev_rxtx_start(dev);
+ ixgbevf_dev_link_update(dev, 0);
+
/* check and configure queue intr-vector mapping */
if (rte_intr_cap_multiple(intr_handle) &&
dev->data->dev_conf.intr_conf.rxq) {
--
2.9.5
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-02-13 22:56 [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start Chas Williams
@ 2018-03-30 16:30 ` Zhang, Helin
2018-03-30 17:21 ` Chas Williams
2018-04-08 2:05 ` Zhang, Qi Z
1 sibling, 1 reply; 15+ messages in thread
From: Zhang, Helin @ 2018-03-30 16:30 UTC (permalink / raw)
To: Chas Williams, dev
Cc: Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> Sent: Wednesday, February 14, 2018 6:56 AM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
>
> From: "Charles (Chas) Williams" <chas3@att.com>
>
> dev->data->eth_link isn't updated until the first interrupt. If a
> link is carrier down, then this interrupt may never happen. Before we finished
> starting the PMD, call ixgbe_dev_link_update() to ensure we have a valid status.
>
> Signed-off-by: Chas Williams <chas3@att.com>
> ---
> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 37eb668..27d29dc 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> if (err)
> goto error;
>
> + ixgbe_dev_link_update(dev, 0);
It is called in rte_eth_dev_start() if lsc is not enabled,
and it is not needed here to avoid any duplication.
BTW, did you see any issue or just check the code? Thanks!
/Helin
> +
> skip_link_setup:
>
> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8 @@
> ixgbevf_dev_start(struct rte_eth_dev *dev)
>
> ixgbevf_dev_rxtx_start(dev);
>
> + ixgbevf_dev_link_update(dev, 0);
> +
> /* check and configure queue intr-vector mapping */
> if (rte_intr_cap_multiple(intr_handle) &&
> dev->data->dev_conf.intr_conf.rxq) {
> --
> 2.9.5
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-03-30 16:30 ` Zhang, Helin
@ 2018-03-30 17:21 ` Chas Williams
2018-04-02 12:40 ` Zhang, Qi Z
0 siblings, 1 reply; 15+ messages in thread
From: Chas Williams @ 2018-03-30 17:21 UTC (permalink / raw)
To: Zhang, Helin
Cc: dev, Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin <helin.zhang@intel.com> wrote:
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> Sent: Wednesday, February 14, 2018 6:56 AM
>> To: dev@dpdk.org
>> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
>> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
>>
>> From: "Charles (Chas) Williams" <chas3@att.com>
>>
>> dev->data->eth_link isn't updated until the first interrupt. If a
>> link is carrier down, then this interrupt may never happen. Before we finished
>> starting the PMD, call ixgbe_dev_link_update() to ensure we have a valid status.
>>
>> Signed-off-by: Chas Williams <chas3@att.com>
>> ---
>> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> index 37eb668..27d29dc 100644
>> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> if (err)
>> goto error;
>>
>> + ixgbe_dev_link_update(dev, 0);
> It is called in rte_eth_dev_start() if lsc is not enabled,
> and it is not needed here to avoid any duplication.
> BTW, did you see any issue or just check the code? Thanks!
Yes, I see an issue with bonding. If LSC is enabled, then link_status
isn't set until the first interrupt to update the link status. If a
link is down, this interrupt may never happen result in link_status
being somewhat undefined.
>
> /Helin
>
>> +
>> skip_link_setup:
>>
>> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8 @@
>> ixgbevf_dev_start(struct rte_eth_dev *dev)
>>
>> ixgbevf_dev_rxtx_start(dev);
>>
>> + ixgbevf_dev_link_update(dev, 0);
>> +
>> /* check and configure queue intr-vector mapping */
>> if (rte_intr_cap_multiple(intr_handle) &&
>> dev->data->dev_conf.intr_conf.rxq) {
>> --
>> 2.9.5
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-03-30 17:21 ` Chas Williams
@ 2018-04-02 12:40 ` Zhang, Qi Z
2018-04-02 13:38 ` Chas Williams
0 siblings, 1 reply; 15+ messages in thread
From: Zhang, Qi Z @ 2018-04-02 12:40 UTC (permalink / raw)
To: Chas Williams, Zhang, Helin
Cc: dev, Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
Hi Williams:
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> Sent: Saturday, March 31, 2018 1:22 AM
> To: Zhang, Helin <helin.zhang@intel.com>
> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> <chas3@att.com>
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin <helin.zhang@intel.com>
> wrote:
> >
> >
> >> -----Original Message-----
> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> >> Sent: Wednesday, February 14, 2018 6:56 AM
> >> To: dev@dpdk.org
> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status
> >> on start
> >>
> >> From: "Charles (Chas) Williams" <chas3@att.com>
> >>
> >> dev->data->eth_link isn't updated until the first interrupt. If a
> >> link is carrier down, then this interrupt may never happen. Before
> >> we finished starting the PMD, call ixgbe_dev_link_update() to ensure we
> have a valid status.
> >>
> >> Signed-off-by: Chas Williams <chas3@att.com>
> >> ---
> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> >> 1 file changed, 4 insertions(+)
> >>
> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> index 37eb668..27d29dc 100644
> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >> if (err)
> >> goto error;
> >>
> >> + ixgbe_dev_link_update(dev, 0);
> > It is called in rte_eth_dev_start() if lsc is not enabled, and it is
> > not needed here to avoid any duplication.
> > BTW, did you see any issue or just check the code? Thanks!
>
> Yes, I see an issue with bonding. If LSC is enabled, then link_status isn't set
> until the first interrupt to update the link status. If a link is down, this
> interrupt may never happen result in link_status being somewhat undefined.
Is your issue only happened on VF?
For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so link status is assume be updated.
If you think it is just missed in VF, can you implemented this in the similar way as PF?
Regards
Qi
>
> >
> > /Helin
> >
> >> +
> >> skip_link_setup:
> >>
> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8 @@
> >> ixgbevf_dev_start(struct rte_eth_dev *dev)
> >>
> >> ixgbevf_dev_rxtx_start(dev);
> >>
> >> + ixgbevf_dev_link_update(dev, 0);
> >> +
> >> /* check and configure queue intr-vector mapping */
> >> if (rte_intr_cap_multiple(intr_handle) &&
> >> dev->data->dev_conf.intr_conf.rxq) {
> >> --
> >> 2.9.5
> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 12:40 ` Zhang, Qi Z
@ 2018-04-02 13:38 ` Chas Williams
2018-04-02 13:45 ` Zhang, Qi Z
0 siblings, 1 reply; 15+ messages in thread
From: Chas Williams @ 2018-04-02 13:38 UTC (permalink / raw)
To: Zhang, Qi Z
Cc: Zhang, Helin, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> Hi Williams:
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> Sent: Saturday, March 31, 2018 1:22 AM
>> To: Zhang, Helin <helin.zhang@intel.com>
>> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
>> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
>> <chas3@att.com>
>> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
>> start
>>
>> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin <helin.zhang@intel.com>
>> wrote:
>> >
>> >
>> >> -----Original Message-----
>> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> >> Sent: Wednesday, February 14, 2018 6:56 AM
>> >> To: dev@dpdk.org
>> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
>> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status
>> >> on start
>> >>
>> >> From: "Charles (Chas) Williams" <chas3@att.com>
>> >>
>> >> dev->data->eth_link isn't updated until the first interrupt. If a
>> >> link is carrier down, then this interrupt may never happen. Before
>> >> we finished starting the PMD, call ixgbe_dev_link_update() to ensure we
>> have a valid status.
>> >>
>> >> Signed-off-by: Chas Williams <chas3@att.com>
>> >> ---
>> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
>> >> 1 file changed, 4 insertions(+)
>> >>
>> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> index 37eb668..27d29dc 100644
>> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> >> if (err)
>> >> goto error;
>> >>
>> >> + ixgbe_dev_link_update(dev, 0);
>> > It is called in rte_eth_dev_start() if lsc is not enabled, and it is
>> > not needed here to avoid any duplication.
>> > BTW, did you see any issue or just check the code? Thanks!
>>
>> Yes, I see an issue with bonding. If LSC is enabled, then link_status isn't set
>> until the first interrupt to update the link status. If a link is down, this
>> interrupt may never happen result in link_status being somewhat undefined.
>
> Is your issue only happened on VF?
> For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so link status is assume be updated.
> If you think it is just missed in VF, can you implemented this in the similar way as PF?
No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't
update (atomically write)
the dev->data->dev_link. After .dev_start() finishes, I need the
link_status of the adapter to
be set. I can't wait until I hope the first interrupt has happened
that would update
dev->data->dev_link. How long would I wait? I don't really care if
the link is down,
or up, or whatever, but it can't be partially filled in. Bonding (in
802.3ad) wants the
links to be similarly configured.
>
> Regards
> Qi
>
>>
>> >
>> > /Helin
>> >
>> >> +
>> >> skip_link_setup:
>> >>
>> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8 @@
>> >> ixgbevf_dev_start(struct rte_eth_dev *dev)
>> >>
>> >> ixgbevf_dev_rxtx_start(dev);
>> >>
>> >> + ixgbevf_dev_link_update(dev, 0);
>> >> +
>> >> /* check and configure queue intr-vector mapping */
>> >> if (rte_intr_cap_multiple(intr_handle) &&
>> >> dev->data->dev_conf.intr_conf.rxq) {
>> >> --
>> >> 2.9.5
>> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 13:38 ` Chas Williams
@ 2018-04-02 13:45 ` Zhang, Qi Z
2018-04-02 13:57 ` Chas Williams
0 siblings, 1 reply; 15+ messages in thread
From: Zhang, Qi Z @ 2018-04-02 13:45 UTC (permalink / raw)
To: Chas Williams
Cc: Zhang, Helin, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
> -----Original Message-----
> From: Chas Williams [mailto:3chas3@gmail.com]
> Sent: Monday, April 2, 2018 9:38 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Charles (Chas) Williams <chas3@att.com>
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> > Hi Williams:
> >
> >> -----Original Message-----
> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> >> Sent: Saturday, March 31, 2018 1:22 AM
> >> To: Zhang, Helin <helin.zhang@intel.com>
> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> >> <chas3@att.com>
> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> status on start
> >>
> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
> >> <helin.zhang@intel.com>
> >> wrote:
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
> >> >> To: dev@dpdk.org
> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> >> status on start
> >> >>
> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
> >> >>
> >> >> dev->data->eth_link isn't updated until the first interrupt. If a
> >> >> link is carrier down, then this interrupt may never happen.
> >> >> Before we finished starting the PMD, call ixgbe_dev_link_update()
> >> >> to ensure we
> >> have a valid status.
> >> >>
> >> >> Signed-off-by: Chas Williams <chas3@att.com>
> >> >> ---
> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> >> >> 1 file changed, 4 insertions(+)
> >> >>
> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> index 37eb668..27d29dc 100644
> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >> >> if (err)
> >> >> goto error;
> >> >>
> >> >> + ixgbe_dev_link_update(dev, 0);
> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and it
> >> > is not needed here to avoid any duplication.
> >> > BTW, did you see any issue or just check the code? Thanks!
> >>
> >> Yes, I see an issue with bonding. If LSC is enabled, then
> >> link_status isn't set until the first interrupt to update the link
> >> status. If a link is down, this interrupt may never happen result in
> link_status being somewhat undefined.
> >
> > Is your issue only happened on VF?
> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so link status is
> assume be updated.
> > If you think it is just missed in VF, can you implemented this in the similar way
> as PF?
>
> No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't update
> (atomically write) the dev->data->dev_link. After .dev_start() finishes, I need
> the link_status of the adapter to be set.
I saw dev_link.link_status does be updated.
err = ixgbe_check_link(hw, &speed, &link_up, 0);
if (err)
goto error;
dev->data->dev_link.link_status = link_up;
> I can't wait until I hope the first
> interrupt has happened that would update
> dev->data->dev_link. How long would I wait? I don't really care if
> the link is down,
> or up, or whatever, but it can't be partially filled in. Bonding (in
> 802.3ad) wants the
> links to be similarly configured.
>
> >
> > Regards
> > Qi
> >
> >>
> >> >
> >> > /Helin
> >> >
> >> >> +
> >> >> skip_link_setup:
> >> >>
> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8
> >> >> @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> >> >>
> >> >> ixgbevf_dev_rxtx_start(dev);
> >> >>
> >> >> + ixgbevf_dev_link_update(dev, 0);
> >> >> +
> >> >> /* check and configure queue intr-vector mapping */
> >> >> if (rte_intr_cap_multiple(intr_handle) &&
> >> >> dev->data->dev_conf.intr_conf.rxq) {
> >> >> --
> >> >> 2.9.5
> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 13:45 ` Zhang, Qi Z
@ 2018-04-02 13:57 ` Chas Williams
2018-04-02 14:34 ` Zhang, Qi Z
2018-04-06 14:52 ` Zhang, Helin
0 siblings, 2 replies; 15+ messages in thread
From: Chas Williams @ 2018-04-02 13:57 UTC (permalink / raw)
To: Zhang, Qi Z
Cc: Zhang, Helin, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
>
>
>> -----Original Message-----
>> From: Chas Williams [mailto:3chas3@gmail.com]
>> Sent: Monday, April 2, 2018 9:38 PM
>> To: Zhang, Qi Z <qi.z.zhang@intel.com>
>> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
>> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
>> <konstantin.ananyev@intel.com>; Charles (Chas) Williams <chas3@att.com>
>> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
>> start
>>
>> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
>> > Hi Williams:
>> >
>> >> -----Original Message-----
>> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> >> Sent: Saturday, March 31, 2018 1:22 AM
>> >> To: Zhang, Helin <helin.zhang@intel.com>
>> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
>> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
>> >> <chas3@att.com>
>> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
>> >> status on start
>> >>
>> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
>> >> <helin.zhang@intel.com>
>> >> wrote:
>> >> >
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
>> >> >> To: dev@dpdk.org
>> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
>> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
>> >> >> status on start
>> >> >>
>> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
>> >> >>
>> >> >> dev->data->eth_link isn't updated until the first interrupt. If a
>> >> >> link is carrier down, then this interrupt may never happen.
>> >> >> Before we finished starting the PMD, call ixgbe_dev_link_update()
>> >> >> to ensure we
>> >> have a valid status.
>> >> >>
>> >> >> Signed-off-by: Chas Williams <chas3@att.com>
>> >> >> ---
>> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
>> >> >> 1 file changed, 4 insertions(+)
>> >> >>
>> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> index 37eb668..27d29dc 100644
>> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> >> >> if (err)
>> >> >> goto error;
>> >> >>
>> >> >> + ixgbe_dev_link_update(dev, 0);
>> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and it
>> >> > is not needed here to avoid any duplication.
>> >> > BTW, did you see any issue or just check the code? Thanks!
>> >>
>> >> Yes, I see an issue with bonding. If LSC is enabled, then
>> >> link_status isn't set until the first interrupt to update the link
>> >> status. If a link is down, this interrupt may never happen result in
>> link_status being somewhat undefined.
>> >
>> > Is your issue only happened on VF?
>> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so link status is
>> assume be updated.
>> > If you think it is just missed in VF, can you implemented this in the similar way
>> as PF?
>>
>> No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't update
>> (atomically write) the dev->data->dev_link. After .dev_start() finishes, I need
>> the link_status of the adapter to be set.
>
> I saw dev_link.link_status does be updated.
> err = ixgbe_check_link(hw, &speed, &link_up, 0);
> if (err)
> goto error;
> dev->data->dev_link.link_status = link_up;
That doesn't fill in link_duplex, link_speed, or link_autoneg.
802.3ad requires that all the ports of
the same bonding group have the same speed and duplex. I need to be
able to check the speed
and the duplex at least (and autoneg as well).
>
>> I can't wait until I hope the first
>> interrupt has happened that would update
>> dev->data->dev_link. How long would I wait? I don't really care if
>> the link is down,
>> or up, or whatever, but it can't be partially filled in. Bonding (in
>> 802.3ad) wants the
>> links to be similarly configured.
>>
>> >
>> > Regards
>> > Qi
>> >
>> >>
>> >> >
>> >> > /Helin
>> >> >
>> >> >> +
>> >> >> skip_link_setup:
>> >> >>
>> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8
>> >> >> @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
>> >> >>
>> >> >> ixgbevf_dev_rxtx_start(dev);
>> >> >>
>> >> >> + ixgbevf_dev_link_update(dev, 0);
>> >> >> +
>> >> >> /* check and configure queue intr-vector mapping */
>> >> >> if (rte_intr_cap_multiple(intr_handle) &&
>> >> >> dev->data->dev_conf.intr_conf.rxq) {
>> >> >> --
>> >> >> 2.9.5
>> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 13:57 ` Chas Williams
@ 2018-04-02 14:34 ` Zhang, Qi Z
2018-04-04 13:53 ` Dai, Wei
2018-04-06 14:52 ` Zhang, Helin
1 sibling, 1 reply; 15+ messages in thread
From: Zhang, Qi Z @ 2018-04-02 14:34 UTC (permalink / raw)
To: Chas Williams
Cc: Zhang, Helin, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
> -----Original Message-----
> From: Chas Williams [mailto:3chas3@gmail.com]
> Sent: Monday, April 2, 2018 9:57 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Charles (Chas) Williams <chas3@att.com>
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
> On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From: Chas Williams [mailto:3chas3@gmail.com]
> >> Sent: Monday, April 2, 2018 9:38 PM
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> >> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> >> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> >> <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> >> <chas3@att.com>
> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> status on start
> >>
> >> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com>
> wrote:
> >> > Hi Williams:
> >> >
> >> >> -----Original Message-----
> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> >> >> Sent: Saturday, March 31, 2018 1:22 AM
> >> >> To: Zhang, Helin <helin.zhang@intel.com>
> >> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> >> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> >> >> <chas3@att.com>
> >> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> >> status on start
> >> >>
> >> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
> >> >> <helin.zhang@intel.com>
> >> >> wrote:
> >> >> >
> >> >> >
> >> >> >> -----Original Message-----
> >> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> >> >> >> Williams
> >> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
> >> >> >> To: dev@dpdk.org
> >> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> >> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> >> >> status on start
> >> >> >>
> >> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
> >> >> >>
> >> >> >> dev->data->eth_link isn't updated until the first interrupt.
> >> >> >> dev->data->If a
> >> >> >> link is carrier down, then this interrupt may never happen.
> >> >> >> Before we finished starting the PMD, call
> >> >> >> ixgbe_dev_link_update() to ensure we
> >> >> have a valid status.
> >> >> >>
> >> >> >> Signed-off-by: Chas Williams <chas3@att.com>
> >> >> >> ---
> >> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> >> >> >> 1 file changed, 4 insertions(+)
> >> >> >>
> >> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> index 37eb668..27d29dc 100644
> >> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >> >> >> if (err)
> >> >> >> goto error;
> >> >> >>
> >> >> >> + ixgbe_dev_link_update(dev, 0);
> >> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and
> >> >> > it is not needed here to avoid any duplication.
> >> >> > BTW, did you see any issue or just check the code? Thanks!
> >> >>
> >> >> Yes, I see an issue with bonding. If LSC is enabled, then
> >> >> link_status isn't set until the first interrupt to update the link
> >> >> status. If a link is down, this interrupt may never happen result
> >> >> in
> >> link_status being somewhat undefined.
> >> >
> >> > Is your issue only happened on VF?
> >> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so
> >> > link status is
> >> assume be updated.
> >> > If you think it is just missed in VF, can you implemented this in
> >> > the similar way
> >> as PF?
> >>
> >> No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't
> >> update (atomically write) the dev->data->dev_link. After
> >> .dev_start() finishes, I need the link_status of the adapter to be set.
> >
> > I saw dev_link.link_status does be updated.
> > err = ixgbe_check_link(hw, &speed, &link_up, 0);
> > if (err)
> > goto error;
> > dev->data->dev_link.link_status = link_up;
>
> That doesn't fill in link_duplex, link_speed, or link_autoneg.
> 802.3ad requires that all the ports of
> the same bonding group have the same speed and duplex. I need to be able
> to check the speed and the duplex at least (and autoneg as well).
OK, I'm not sure if it is better to call this at rte_eth_dev_start
So far we have below code.
if (dev->data->dev_conf.intr_conf.lsc == 0) {
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->link_update, -ENOTSUP);
(*dev->dev_ops->link_update)(dev, 0);
}
Can we just remove the lsc check.
I'd like to see other people's comments.
>
> >
> >> I can't wait until I hope the first
> >> interrupt has happened that would update
> >> dev->data->dev_link. How long would I wait? I don't really care if
> >> the link is down,
> >> or up, or whatever, but it can't be partially filled in. Bonding (in
> >> 802.3ad) wants the
> >> links to be similarly configured.
> >>
> >> >
> >> > Regards
> >> > Qi
> >> >
> >> >>
> >> >> >
> >> >> > /Helin
> >> >> >
> >> >> >> +
> >> >> >> skip_link_setup:
> >> >> >>
> >> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6
> >> >> >> +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> >> >> >>
> >> >> >> ixgbevf_dev_rxtx_start(dev);
> >> >> >>
> >> >> >> + ixgbevf_dev_link_update(dev, 0);
> >> >> >> +
> >> >> >> /* check and configure queue intr-vector mapping */
> >> >> >> if (rte_intr_cap_multiple(intr_handle) &&
> >> >> >> dev->data->dev_conf.intr_conf.rxq) {
> >> >> >> --
> >> >> >> 2.9.5
> >> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 14:34 ` Zhang, Qi Z
@ 2018-04-04 13:53 ` Dai, Wei
0 siblings, 0 replies; 15+ messages in thread
From: Dai, Wei @ 2018-04-04 13:53 UTC (permalink / raw)
To: Zhang, Qi Z, Chas Williams
Cc: Zhang, Helin, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Zhang, Qi Z
> Sent: Monday, April 2, 2018 10:34 PM
> To: Chas Williams <3chas3@gmail.com>
> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Charles (Chas) Williams <chas3@att.com>
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
>
>
> > -----Original Message-----
> > From: Chas Williams [mailto:3chas3@gmail.com]
> > Sent: Monday, April 2, 2018 9:57 PM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> > <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> > <chas3@att.com>
> > Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > status on start
> >
> > On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com>
> wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: Chas Williams [mailto:3chas3@gmail.com]
> > >> Sent: Monday, April 2, 2018 9:38 PM
> > >> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > >> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu,
> Wenzhuo
> > >> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > >> <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> > >> <chas3@att.com>
> > >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> status on start
> > >>
> > >> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com>
> > wrote:
> > >> > Hi Williams:
> > >> >
> > >> >> -----Original Message-----
> > >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> > >> >> Williams
> > >> >> Sent: Saturday, March 31, 2018 1:22 AM
> > >> >> To: Zhang, Helin <helin.zhang@intel.com>
> > >> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>;
> Ananyev,
> > >> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas)
> > >> >> Williams <chas3@att.com>
> > >> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> >> status on start
> > >> >>
> > >> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
> > >> >> <helin.zhang@intel.com>
> > >> >> wrote:
> > >> >> >
> > >> >> >
> > >> >> >> -----Original Message-----
> > >> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> > >> >> >> Williams
> > >> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
> > >> >> >> To: dev@dpdk.org
> > >> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> > >> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> >> >> status on start
> > >> >> >>
> > >> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
> > >> >> >>
> > >> >> >> dev->data->eth_link isn't updated until the first interrupt.
> > >> >> >> dev->data->If a
> > >> >> >> link is carrier down, then this interrupt may never happen.
> > >> >> >> Before we finished starting the PMD, call
> > >> >> >> ixgbe_dev_link_update() to ensure we
> > >> >> have a valid status.
> > >> >> >>
> > >> >> >> Signed-off-by: Chas Williams <chas3@att.com>
> > >> >> >> ---
> > >> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> > >> >> >> 1 file changed, 4 insertions(+)
> > >> >> >>
> > >> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> index 37eb668..27d29dc 100644
> > >> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev
> *dev)
> > >> >> >> if (err)
> > >> >> >> goto error;
> > >> >> >>
> > >> >> >> + ixgbe_dev_link_update(dev, 0);
> > >> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and
> > >> >> > it is not needed here to avoid any duplication.
> > >> >> > BTW, did you see any issue or just check the code? Thanks!
> > >> >>
> > >> >> Yes, I see an issue with bonding. If LSC is enabled, then
> > >> >> link_status isn't set until the first interrupt to update the
> > >> >> link status. If a link is down, this interrupt may never happen
> > >> >> result in
> > >> link_status being somewhat undefined.
> > >> >
> > >> > Is your issue only happened on VF?
> > >> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so
> > >> > link status is
> > >> assume be updated.
> > >> > If you think it is just missed in VF, can you implemented this in
> > >> > the similar way
> > >> as PF?
> > >>
> > >> No, I don't believe it's isolated to VF. ixgbe_check_link()
> > >> doesn't update (atomically write) the dev->data->dev_link. After
> > >> .dev_start() finishes, I need the link_status of the adapter to be set.
> > >
> > > I saw dev_link.link_status does be updated.
> > > err = ixgbe_check_link(hw, &speed, &link_up, 0);
> > > if (err)
> > > goto error;
> > > dev->data->dev_link.link_status = link_up;
> >
> > That doesn't fill in link_duplex, link_speed, or link_autoneg.
> > 802.3ad requires that all the ports of the same bonding group have the
> > same speed and duplex. I need to be able to check the speed and the
> > duplex at least (and autoneg as well).
>
> OK, I'm not sure if it is better to call this at rte_eth_dev_start So far we have
> below code.
> if (dev->data->dev_conf.intr_conf.lsc == 0) {
> RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->link_update,
> -ENOTSUP);
> (*dev->dev_ops->link_update)(dev, 0);
> }
> Can we just remove the lsc check.
> I'd like to see other people's comments.
>
I have tested both 82599 PF and VF.
I add a breakpoint at the code line added by this patch.
Before the added line, all members of the dev->data->dev_link are zeros in both PF and VF.
After the added line, the dev_link is updated.
Indeed, I agree Zhang Qi's suggestion.
If the lsc check in rte_eth_dev_start is removed, it can benefit all PMDs.
Of course, Qi's suggestion also address your issue.
> >
> > >
> > >> I can't wait until I hope the first interrupt has happened that
> > >> would update
> > >> dev->data->dev_link. How long would I wait? I don't really care
> > >> dev->data->if
> > >> the link is down,
> > >> or up, or whatever, but it can't be partially filled in. Bonding
> > >> (in
> > >> 802.3ad) wants the
> > >> links to be similarly configured.
> > >>
> > >> >
> > >> > Regards
> > >> > Qi
> > >> >
> > >> >>
> > >> >> >
> > >> >> > /Helin
> > >> >> >
> > >> >> >> +
> > >> >> >> skip_link_setup:
> > >> >> >>
> > >> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6
> > >> >> >> +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> > >> >> >>
> > >> >> >> ixgbevf_dev_rxtx_start(dev);
> > >> >> >>
> > >> >> >> + ixgbevf_dev_link_update(dev, 0);
> > >> >> >> +
> > >> >> >> /* check and configure queue intr-vector mapping */
> > >> >> >> if (rte_intr_cap_multiple(intr_handle) &&
> > >> >> >> dev->data->dev_conf.intr_conf.rxq) {
> > >> >> >> --
> > >> >> >> 2.9.5
> > >> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-02 13:57 ` Chas Williams
2018-04-02 14:34 ` Zhang, Qi Z
@ 2018-04-06 14:52 ` Zhang, Helin
2018-04-06 14:59 ` Chas Williams
2018-04-06 15:59 ` Zhang, Qi Z
1 sibling, 2 replies; 15+ messages in thread
From: Zhang, Helin @ 2018-04-06 14:52 UTC (permalink / raw)
To: Chas Williams, Zhang, Qi Z
Cc: dev, Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
> -----Original Message-----
> From: Chas Williams [mailto:3chas3@gmail.com]
> Sent: Monday, April 2, 2018 9:57 PM
> To: Zhang, Qi Z
> Cc: Zhang, Helin; dev@dpdk.org; Lu, Wenzhuo; Ananyev, Konstantin; Charles
> (Chas) Williams
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
> On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From: Chas Williams [mailto:3chas3@gmail.com]
> >> Sent: Monday, April 2, 2018 9:38 PM
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> >> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> >> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> >> <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> >> <chas3@att.com>
> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> status on start
> >>
> >> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> >> > Hi Williams:
> >> >
> >> >> -----Original Message-----
> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> >> >> Sent: Saturday, March 31, 2018 1:22 AM
> >> >> To: Zhang, Helin <helin.zhang@intel.com>
> >> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> >> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> >> >> <chas3@att.com>
> >> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> >> status on start
> >> >>
> >> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
> >> >> <helin.zhang@intel.com>
> >> >> wrote:
> >> >> >
> >> >> >
> >> >> >> -----Original Message-----
> >> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> >> >> >> Williams
> >> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
> >> >> >> To: dev@dpdk.org
> >> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> >> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> >> >> >> status on start
> >> >> >>
> >> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
> >> >> >>
> >> >> >> dev->data->eth_link isn't updated until the first interrupt.
> >> >> >> dev->data->If a
> >> >> >> link is carrier down, then this interrupt may never happen.
> >> >> >> Before we finished starting the PMD, call
> >> >> >> ixgbe_dev_link_update() to ensure we
> >> >> have a valid status.
> >> >> >>
> >> >> >> Signed-off-by: Chas Williams <chas3@att.com>
> >> >> >> ---
> >> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> >> >> >> 1 file changed, 4 insertions(+)
> >> >> >>
> >> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> index 37eb668..27d29dc 100644
> >> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >> >> >> if (err)
> >> >> >> goto error;
> >> >> >>
> >> >> >> + ixgbe_dev_link_update(dev, 0);
> >> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and
> >> >> > it is not needed here to avoid any duplication.
> >> >> > BTW, did you see any issue or just check the code? Thanks!
> >> >>
> >> >> Yes, I see an issue with bonding. If LSC is enabled, then
> >> >> link_status isn't set until the first interrupt to update the link
> >> >> status. If a link is down, this interrupt may never happen result
> >> >> in
> >> link_status being somewhat undefined.
> >> >
> >> > Is your issue only happened on VF?
> >> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so
> >> > link status is
> >> assume be updated.
> >> > If you think it is just missed in VF, can you implemented this in
> >> > the similar way
> >> as PF?
> >>
> >> No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't
> >> update (atomically write) the dev->data->dev_link. After
> >> .dev_start() finishes, I need the link_status of the adapter to be set.
> >
> > I saw dev_link.link_status does be updated.
> > err = ixgbe_check_link(hw, &speed, &link_up, 0);
> > if (err)
> > goto error;
> > dev->data->dev_link.link_status = link_up;
>
> That doesn't fill in link_duplex, link_speed, or link_autoneg.
> 802.3ad requires that all the ports of
> the same bonding group have the same speed and duplex. I need to be able to
> check the speed and the duplex at least (and autoneg as well).
I am thinking it might be a bit late to update the link status in dev_start(), and we
need to check if the full link update should be done in eth_ixgbe_dev_init() and
eth_ixgbevf_dev_init().
@Qi, Chas, could you help to check if my idea is correct?
Also I think this applies to other PMDs, e.g. igb, i40e. At least we need to double check.
Regards,
Helin
>
> >
> >> I can't wait until I hope the first
> >> interrupt has happened that would update
> >> dev->data->dev_link. How long would I wait? I don't really care if
> >> the link is down,
> >> or up, or whatever, but it can't be partially filled in. Bonding (in
> >> 802.3ad) wants the
> >> links to be similarly configured.
> >>
> >> >
> >> > Regards
> >> > Qi
> >> >
> >> >>
> >> >> >
> >> >> > /Helin
> >> >> >
> >> >> >> +
> >> >> >> skip_link_setup:
> >> >> >>
> >> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6
> >> >> >> +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> >> >> >>
> >> >> >> ixgbevf_dev_rxtx_start(dev);
> >> >> >>
> >> >> >> + ixgbevf_dev_link_update(dev, 0);
> >> >> >> +
> >> >> >> /* check and configure queue intr-vector mapping */
> >> >> >> if (rte_intr_cap_multiple(intr_handle) &&
> >> >> >> dev->data->dev_conf.intr_conf.rxq) {
> >> >> >> --
> >> >> >> 2.9.5
> >> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-06 14:52 ` Zhang, Helin
@ 2018-04-06 14:59 ` Chas Williams
2018-04-06 15:59 ` Zhang, Qi Z
1 sibling, 0 replies; 15+ messages in thread
From: Chas Williams @ 2018-04-06 14:59 UTC (permalink / raw)
To: Zhang, Helin
Cc: Zhang, Qi Z, dev, Lu, Wenzhuo, Ananyev, Konstantin,
Charles (Chas) Williams
On Fri, Apr 6, 2018 at 10:52 AM, Zhang, Helin <helin.zhang@intel.com> wrote:
>
>
>> -----Original Message-----
>> From: Chas Williams [mailto:3chas3@gmail.com]
>> Sent: Monday, April 2, 2018 9:57 PM
>> To: Zhang, Qi Z
>> Cc: Zhang, Helin; dev@dpdk.org; Lu, Wenzhuo; Ananyev, Konstantin; Charles
>> (Chas) Williams
>> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
>> start
>>
>> On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
>> >
>> >
>> >> -----Original Message-----
>> >> From: Chas Williams [mailto:3chas3@gmail.com]
>> >> Sent: Monday, April 2, 2018 9:38 PM
>> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>
>> >> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
>> >> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
>> >> <konstantin.ananyev@intel.com>; Charles (Chas) Williams
>> >> <chas3@att.com>
>> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
>> >> status on start
>> >>
>> >> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
>> >> > Hi Williams:
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
>> >> >> Sent: Saturday, March 31, 2018 1:22 AM
>> >> >> To: Zhang, Helin <helin.zhang@intel.com>
>> >> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
>> >> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
>> >> >> <chas3@att.com>
>> >> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
>> >> >> status on start
>> >> >>
>> >> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
>> >> >> <helin.zhang@intel.com>
>> >> >> wrote:
>> >> >> >
>> >> >> >
>> >> >> >> -----Original Message-----
>> >> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
>> >> >> >> Williams
>> >> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
>> >> >> >> To: dev@dpdk.org
>> >> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
>> >> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
>> >> >> >> status on start
>> >> >> >>
>> >> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
>> >> >> >>
>> >> >> >> dev->data->eth_link isn't updated until the first interrupt.
>> >> >> >> dev->data->If a
>> >> >> >> link is carrier down, then this interrupt may never happen.
>> >> >> >> Before we finished starting the PMD, call
>> >> >> >> ixgbe_dev_link_update() to ensure we
>> >> >> have a valid status.
>> >> >> >>
>> >> >> >> Signed-off-by: Chas Williams <chas3@att.com>
>> >> >> >> ---
>> >> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
>> >> >> >> 1 file changed, 4 insertions(+)
>> >> >> >>
>> >> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> >> index 37eb668..27d29dc 100644
>> >> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> >> >> >> if (err)
>> >> >> >> goto error;
>> >> >> >>
>> >> >> >> + ixgbe_dev_link_update(dev, 0);
>> >> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and
>> >> >> > it is not needed here to avoid any duplication.
>> >> >> > BTW, did you see any issue or just check the code? Thanks!
>> >> >>
>> >> >> Yes, I see an issue with bonding. If LSC is enabled, then
>> >> >> link_status isn't set until the first interrupt to update the link
>> >> >> status. If a link is down, this interrupt may never happen result
>> >> >> in
>> >> link_status being somewhat undefined.
>> >> >
>> >> > Is your issue only happened on VF?
>> >> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so
>> >> > link status is
>> >> assume be updated.
>> >> > If you think it is just missed in VF, can you implemented this in
>> >> > the similar way
>> >> as PF?
>> >>
>> >> No, I don't believe it's isolated to VF. ixgbe_check_link() doesn't
>> >> update (atomically write) the dev->data->dev_link. After
>> >> .dev_start() finishes, I need the link_status of the adapter to be set.
>> >
>> > I saw dev_link.link_status does be updated.
>> > err = ixgbe_check_link(hw, &speed, &link_up, 0);
>> > if (err)
>> > goto error;
>> > dev->data->dev_link.link_status = link_up;
>>
>> That doesn't fill in link_duplex, link_speed, or link_autoneg.
>> 802.3ad requires that all the ports of
>> the same bonding group have the same speed and duplex. I need to be able to
>> check the speed and the duplex at least (and autoneg as well).
> I am thinking it might be a bit late to update the link status in dev_start(), and we
> need to check if the full link update should be done in eth_ixgbe_dev_init() and
> eth_ixgbevf_dev_init().
> @Qi, Chas, could you help to check if my idea is correct?
> Also I think this applies to other PMDs, e.g. igb, i40e. At least we need to double check.
I don't think link_status needs updated sooner unless you think there
is some path
in the PMDs that need to check the link status. I am not aware of anything like
that in the Intel PMDs (but certainly not an expert in their
behavior). Since the DPDK
API is inherently single-threaded there's no external reason to have
the link status
updated until just before .dev_start() finishes.
>
> Regards,
> Helin
>
>>
>> >
>> >> I can't wait until I hope the first
>> >> interrupt has happened that would update
>> >> dev->data->dev_link. How long would I wait? I don't really care if
>> >> the link is down,
>> >> or up, or whatever, but it can't be partially filled in. Bonding (in
>> >> 802.3ad) wants the
>> >> links to be similarly configured.
>> >>
>> >> >
>> >> > Regards
>> >> > Qi
>> >> >
>> >> >>
>> >> >> >
>> >> >> > /Helin
>> >> >> >
>> >> >> >> +
>> >> >> >> skip_link_setup:
>> >> >> >>
>> >> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6
>> >> >> >> +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
>> >> >> >>
>> >> >> >> ixgbevf_dev_rxtx_start(dev);
>> >> >> >>
>> >> >> >> + ixgbevf_dev_link_update(dev, 0);
>> >> >> >> +
>> >> >> >> /* check and configure queue intr-vector mapping */
>> >> >> >> if (rte_intr_cap_multiple(intr_handle) &&
>> >> >> >> dev->data->dev_conf.intr_conf.rxq) {
>> >> >> >> --
>> >> >> >> 2.9.5
>> >> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-06 14:52 ` Zhang, Helin
2018-04-06 14:59 ` Chas Williams
@ 2018-04-06 15:59 ` Zhang, Qi Z
1 sibling, 0 replies; 15+ messages in thread
From: Zhang, Qi Z @ 2018-04-06 15:59 UTC (permalink / raw)
To: Zhang, Helin, Chas Williams
Cc: dev, Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
Hi Helin:
> -----Original Message-----
> From: Zhang, Helin
> Sent: Friday, April 6, 2018 10:52 PM
> To: Chas Williams <3chas3@gmail.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> <chas3@att.com>
> Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
>
>
> > -----Original Message-----
> > From: Chas Williams [mailto:3chas3@gmail.com]
> > Sent: Monday, April 2, 2018 9:57 PM
> > To: Zhang, Qi Z
> > Cc: Zhang, Helin; dev@dpdk.org; Lu, Wenzhuo; Ananyev, Konstantin;
> > Charles
> > (Chas) Williams
> > Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > status on start
> >
> > On Mon, Apr 2, 2018 at 9:45 AM, Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: Chas Williams [mailto:3chas3@gmail.com]
> > >> Sent: Monday, April 2, 2018 9:38 PM
> > >> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > >> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> > >> <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > >> <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> > >> <chas3@att.com>
> > >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> status on start
> > >>
> > >> On Mon, Apr 2, 2018 at 8:40 AM, Zhang, Qi Z <qi.z.zhang@intel.com>
> wrote:
> > >> > Hi Williams:
> > >> >
> > >> >> -----Original Message-----
> > >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> > >> >> Williams
> > >> >> Sent: Saturday, March 31, 2018 1:22 AM
> > >> >> To: Zhang, Helin <helin.zhang@intel.com>
> > >> >> Cc: dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev,
> > >> >> Konstantin <konstantin.ananyev@intel.com>; Charles (Chas)
> > >> >> Williams <chas3@att.com>
> > >> >> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> >> status on start
> > >> >>
> > >> >> On Fri, Mar 30, 2018 at 12:30 PM, Zhang, Helin
> > >> >> <helin.zhang@intel.com>
> > >> >> wrote:
> > >> >> >
> > >> >> >
> > >> >> >> -----Original Message-----
> > >> >> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas
> > >> >> >> Williams
> > >> >> >> Sent: Wednesday, February 14, 2018 6:56 AM
> > >> >> >> To: dev@dpdk.org
> > >> >> >> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> > >> >> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link
> > >> >> >> status on start
> > >> >> >>
> > >> >> >> From: "Charles (Chas) Williams" <chas3@att.com>
> > >> >> >>
> > >> >> >> dev->data->eth_link isn't updated until the first interrupt.
> > >> >> >> dev->data->If a
> > >> >> >> link is carrier down, then this interrupt may never happen.
> > >> >> >> Before we finished starting the PMD, call
> > >> >> >> ixgbe_dev_link_update() to ensure we
> > >> >> have a valid status.
> > >> >> >>
> > >> >> >> Signed-off-by: Chas Williams <chas3@att.com>
> > >> >> >> ---
> > >> >> >> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> > >> >> >> 1 file changed, 4 insertions(+)
> > >> >> >>
> > >> >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> index 37eb668..27d29dc 100644
> > >> >> >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> > >> >> >> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> > >> >> >> if (err)
> > >> >> >> goto error;
> > >> >> >>
> > >> >> >> + ixgbe_dev_link_update(dev, 0);
> > >> >> > It is called in rte_eth_dev_start() if lsc is not enabled, and
> > >> >> > it is not needed here to avoid any duplication.
> > >> >> > BTW, did you see any issue or just check the code? Thanks!
> > >> >>
> > >> >> Yes, I see an issue with bonding. If LSC is enabled, then
> > >> >> link_status isn't set until the first interrupt to update the
> > >> >> link status. If a link is down, this interrupt may never happen
> > >> >> result in
> > >> link_status being somewhat undefined.
> > >> >
> > >> > Is your issue only happened on VF?
> > >> > For PF, I saw ixgbe_check_link is called at ixgbe_dev_start, so
> > >> > link status is
> > >> assume be updated.
> > >> > If you think it is just missed in VF, can you implemented this in
> > >> > the similar way
> > >> as PF?
> > >>
> > >> No, I don't believe it's isolated to VF. ixgbe_check_link()
> > >> doesn't update (atomically write) the dev->data->dev_link. After
> > >> .dev_start() finishes, I need the link_status of the adapter to be set.
> > >
> > > I saw dev_link.link_status does be updated.
> > > err = ixgbe_check_link(hw, &speed, &link_up, 0);
> > > if (err)
> > > goto error;
> > > dev->data->dev_link.link_status = link_up;
> >
> > That doesn't fill in link_duplex, link_speed, or link_autoneg.
> > 802.3ad requires that all the ports of the same bonding group have the
> > same speed and duplex. I need to be able to check the speed and the
> > duplex at least (and autoneg as well).
> I am thinking it might be a bit late to update the link status in dev_start(), and
> we need to check if the full link update should be done in eth_ixgbe_dev_init()
> and eth_ixgbevf_dev_init().
> @Qi, Chas, could you help to check if my idea is correct?
> Also I think this applies to other PMDs, e.g. igb, i40e. At least we need to
> double check.
link_update should not be called at init, because link speed is not configured yet,
it is configured at rte_eth_dev_configure, and usually it is applied at dev_start.
Basically I agree with the idea of the patch, link status should be valid when device
is started even lsc =1, but not sure if it is a common issue or we can move to ether layer,
anyway this could be on a separate topic
so how about just ack this and make ixgbe work first, what do you think?
Regards
Qi
>
> Regards,
> Helin
>
> >
> > >
> > >> I can't wait until I hope the first interrupt has happened that
> > >> would update
> > >> dev->data->dev_link. How long would I wait? I don't really care
> > >> dev->data->if
> > >> the link is down,
> > >> or up, or whatever, but it can't be partially filled in. Bonding
> > >> (in
> > >> 802.3ad) wants the
> > >> links to be similarly configured.
> > >>
> > >> >
> > >> > Regards
> > >> > Qi
> > >> >
> > >> >>
> > >> >> >
> > >> >> > /Helin
> > >> >> >
> > >> >> >> +
> > >> >> >> skip_link_setup:
> > >> >> >>
> > >> >> >> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6
> > >> >> >> +5035,8 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> > >> >> >>
> > >> >> >> ixgbevf_dev_rxtx_start(dev);
> > >> >> >>
> > >> >> >> + ixgbevf_dev_link_update(dev, 0);
> > >> >> >> +
> > >> >> >> /* check and configure queue intr-vector mapping */
> > >> >> >> if (rte_intr_cap_multiple(intr_handle) &&
> > >> >> >> dev->data->dev_conf.intr_conf.rxq) {
> > >> >> >> --
> > >> >> >> 2.9.5
> > >> >> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-02-13 22:56 [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start Chas Williams
2018-03-30 16:30 ` Zhang, Helin
@ 2018-04-08 2:05 ` Zhang, Qi Z
2018-04-08 16:08 ` Zhang, Helin
1 sibling, 1 reply; 15+ messages in thread
From: Zhang, Qi Z @ 2018-04-08 2:05 UTC (permalink / raw)
To: Chas Williams, dev
Cc: Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> Sent: Wednesday, February 14, 2018 6:56 AM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Charles (Chas) Williams <chas3@att.com>
> Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
>
> From: "Charles (Chas) Williams" <chas3@att.com>
>
> dev->data->eth_link isn't updated until the first interrupt. If a
> link is carrier down, then this interrupt may never happen. Before we
> finished starting the PMD, call ixgbe_dev_link_update() to ensure we have a
> valid status.
>
> Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 37eb668..27d29dc 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -2666,6 +2666,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> if (err)
> goto error;
>
> + ixgbe_dev_link_update(dev, 0);
> +
> skip_link_setup:
>
> if (rte_intr_allow_others(intr_handle)) { @@ -5033,6 +5035,8 @@
> ixgbevf_dev_start(struct rte_eth_dev *dev)
>
> ixgbevf_dev_rxtx_start(dev);
>
> + ixgbevf_dev_link_update(dev, 0);
> +
> /* check and configure queue intr-vector mapping */
> if (rte_intr_cap_multiple(intr_handle) &&
> dev->data->dev_conf.intr_conf.rxq) {
> --
> 2.9.5
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
2018-04-08 2:05 ` Zhang, Qi Z
@ 2018-04-08 16:08 ` Zhang, Helin
0 siblings, 0 replies; 15+ messages in thread
From: Zhang, Helin @ 2018-04-08 16:08 UTC (permalink / raw)
To: Zhang, Qi Z, Chas Williams, dev
Cc: Lu, Wenzhuo, Ananyev, Konstantin, Charles (Chas) Williams
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Zhang, Qi Z
> Sent: Sunday, April 8, 2018 10:05 AM
> To: Chas Williams; dev@dpdk.org
> Cc: Lu, Wenzhuo; Ananyev, Konstantin; Charles (Chas) Williams
> Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> start
>
>
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chas Williams
> > Sent: Wednesday, February 14, 2018 6:56 AM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; Charles (Chas) Williams
> > <chas3@att.com>
> > Subject: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on
> > start
> >
> > From: "Charles (Chas) Williams" <chas3@att.com>
> >
> > dev->data->eth_link isn't updated until the first interrupt. If a
> > link is carrier down, then this interrupt may never happen. Before we
> > finished starting the PMD, call ixgbe_dev_link_update() to ensure we
> > have a valid status.
> >
> > Signed-off-by: Chas Williams <chas3@att.com>
>
> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel, thanks!
/Helin
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start
@ 2023-12-15 13:11 Riyadi Selamat
0 siblings, 0 replies; 15+ messages in thread
From: Riyadi Selamat @ 2023-12-15 13:11 UTC (permalink / raw)
To: dev
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: Type: text/html, Size: 23 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-12-20 14:35 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-13 22:56 [dpdk-dev] [PATCH] net/ixgbe: update data->eth_link status on start Chas Williams
2018-03-30 16:30 ` Zhang, Helin
2018-03-30 17:21 ` Chas Williams
2018-04-02 12:40 ` Zhang, Qi Z
2018-04-02 13:38 ` Chas Williams
2018-04-02 13:45 ` Zhang, Qi Z
2018-04-02 13:57 ` Chas Williams
2018-04-02 14:34 ` Zhang, Qi Z
2018-04-04 13:53 ` Dai, Wei
2018-04-06 14:52 ` Zhang, Helin
2018-04-06 14:59 ` Chas Williams
2018-04-06 15:59 ` Zhang, Qi Z
2018-04-08 2:05 ` Zhang, Qi Z
2018-04-08 16:08 ` Zhang, Helin
2023-12-15 13:11 Riyadi Selamat
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).