From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 195BDA0540; Tue, 13 Dec 2022 04:12:30 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EDC3540684; Tue, 13 Dec 2022 04:12:29 +0100 (CET) Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) by mails.dpdk.org (Postfix) with ESMTP id D8CED40146 for ; Tue, 13 Dec 2022 04:12:27 +0100 (CET) Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-1322d768ba7so10976299fac.5 for ; Mon, 12 Dec 2022 19:12:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2GsMVJmeVIhKfaY82u+Gu01gEYFmbvcUClDeqGvh3Qk=; b=l86Dsa4N96QmDSuC6y4slWSTFKv7qqjm+c/IE0Rtsli4WK8HFnXNEwtDRiRWjIsdmE 14Py+tzjGBVWqaC+xCqvBaTpqs2ffuajqs98k8Z2EhGmD8VaPYDg/zzXh7nOpGW7LTCS x8PswHZK2hW03ir51n272OHjEuRHCjFGmWH5p16+sa8sJVyHIppdMyYZ5uyvKp6Elr8Z Zg+m3sQD+0v5VCS2aGF6pIgp4FMtTf7Gpv95J5ymmsC1TBJe1RYoKLqU2nY7gNjGApI5 9W4lifkvzaT0PdBaZpJX3CQiL34ZhAJAtC3yiHngRks1IpxBMewJpSdEnj1yfxaiwPTd PbKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2GsMVJmeVIhKfaY82u+Gu01gEYFmbvcUClDeqGvh3Qk=; b=LTQUPnQeNf5L3NbhgfXXGfQejPK0gwq+FgRBCQ9gmHtLfDS8w/ssjzbX8lYBsLrJ4n vlI3BC8gO3gx0Vc56EYPgNtUu8JUXbQ234apoIJX4UrqKR6Ko/EDBtFai8F7Sg+9yO0x MlZIIf1XrkRDb1d1oNjUwfkIrfM6N6t7Dbr1mJKvw+Zauk2bLkUO5XlwaU+Z73sDgCEH v/ebtPUjwP/Gd94ywFv0RbZMUVMwOa+/eRGOSyXo/smy8uK3Rjf4mSmyfc9dJDfCcAIa 3Aw8um4VbhvDQZ5WieS1Rpj5ibEZfsCBO4YrAznsfsAOaFvNKOnYl8gq1ApeiBda6Sho /b8w== X-Gm-Message-State: ANoB5pmuAtPhOvtjPmDyjj345M8FnCcUW5t6ASSPl/0enqAS6Tklqhpr e8IJEkFmfIyU01RAygQZHy9ZuVV1/HtyrwVvIMQ= X-Google-Smtp-Source: AA0mqf4GHiYEgHhOyYOsiqV5ueBFMnf5tEIB0lIb5E2ErUI06ZkUi+Bt78K6NSsL+ytqHjMqLBo9kWDNkr2lpbKUxaE= X-Received: by 2002:a05:6870:790e:b0:148:a6a:e616 with SMTP id hg14-20020a056870790e00b001480a6ae616mr119053oab.63.1670901147126; Mon, 12 Dec 2022 19:12:27 -0800 (PST) MIME-Version: 1.0 References: <1669207333-8769-1-git-send-email-hanshuang87@gmail.com> In-Reply-To: From: Shuang Han Date: Tue, 13 Dec 2022 11:12:19 +0800 Message-ID: Subject: Re: [PATCH] net/ice: fix link status error when dev start To: "Zhang, Qi Z" Cc: "dev@dpdk.org" , "Yang, Qiming" Content-Type: multipart/alternative; boundary="000000000000544f1e05efacfde9" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --000000000000544f1e05efacfde9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I agree. Maybe this is the better solution Zhang, Qi Z =E4=BA=8E2022=E5=B9=B412=E6=9C=8813=E6= =97=A5=E5=91=A8=E4=BA=8C 09:50=E5=86=99=E9=81=93=EF=BC=9A > > > > -----Original Message----- > > From: Shuang Han > > Sent: Wednesday, November 23, 2022 8:42 PM > > To: dev@dpdk.org > > Cc: Yang, Qiming ; Zhang, Qi Z > > ; Shuang Han > > Subject: [PATCH] net/ice: fix link status error when dev start > > > > ice_link_update get port link status and wait for one second when dev > start. > > If the device need almost one second for link up, ice_link_update will > enter > > the last rte_delay_ms(CHECK_INTERVAL) with link down, in the meantime > > link interrupt raised, the interrupt handler update dev->data->dev_link > to up. > > After a while the rte_delay_ms(CHECK_INTERVAL) finished and update dev- > > >data->dev_link to down. > > > > Signed-off-by: Shuang Han > > --- > > drivers/net/ice/ice_ethdev.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.= c > index > > 0bc739d..316ba5a 100644 > > --- a/drivers/net/ice/ice_ethdev.c > > +++ b/drivers/net/ice/ice_ethdev.c > > @@ -4013,9 +4013,9 @@ static int ice_init_rss(struct ice_pf *pf) > > RTE_ETH_LINK_SPEED_FIXED); > > > > out: > > - ice_atomic_write_link_status(dev, &link); > > if (link.link_status =3D=3D old.link_status) > > return -1; > > + ice_atomic_write_link_status(dev, &link); > > This looks like a workaround, I think we may need some lock to prevent > ice_link_update be re-entered from different thread at same time. > > > > > return 0; > > } > > -- > > 1.8.3.1 > > --=20 Best regards Han Shuang --000000000000544f1e05efacfde9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I agree. Maybe this is the better solutio= n

Zhang, Qi Z <qi.z.zha= ng@intel.com> =E4=BA=8E2022=E5=B9=B412=E6=9C=8813=E6=97=A5=E5=91=A8= =E4=BA=8C 09:50=E5=86=99=E9=81=93=EF=BC=9A


> -----Original Message-----
> From: Shuang Han <hanshuang87@gmail.com>
> Sent: Wednesday, November 23, 2022 8:42 PM
> To: dev@dpdk.org=
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> <qi.z.zha= ng@intel.com>; Shuang Han <hanshuang87@gmail.com>
> Subject: [PATCH] net/ice: fix link status error when dev start
>
> ice_link_update get port link status and wait for one second when dev = start.
> If the device need almost one second for link up, ice_link_update will= enter
> the last rte_delay_ms(CHECK_INTERVAL) with link down, in the meantime<= br> > link interrupt raised, the interrupt handler update dev->data->d= ev_link to up.
> After a while the rte_delay_ms(CHECK_INTERVAL) finished and update dev= -
> >data->dev_link to down.
>
> Signed-off-by: Shuang Han <hanshuang87@gmail.com>
> ---
>=C2=A0 drivers/net/ice/ice_ethdev.c | 2 +-
>=C2=A0 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev= .c index
> 0bc739d..316ba5a 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -4013,9 +4013,9 @@ static int ice_init_rss(struct ice_pf *pf)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0RTE_ETH_LINK_SPEED_FIXED);
>
>=C2=A0 out:
> -=C2=A0 =C2=A0 =C2=A0ice_atomic_write_link_status(dev, &link);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0if (link.link_status =3D=3D old.link_status)=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -1;
> +=C2=A0 =C2=A0 =C2=A0ice_atomic_write_link_status(dev, &link);

This looks like a workaround, I think we may need some lock to prevent ice_= link_update be re-entered from different thread at same time.

>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;
>=C2=A0 }
> --
> 1.8.3.1



--
Best regards
Han Shuang
--000000000000544f1e05efacfde9--