[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <MW4PR11MB591159578D0D2AFDB0CB8917BAE62@MW4PR11MB5911.namprd11.prod.outlook.com>
Date: Thu, 9 May 2024 23:03:27 +0000
From: "Singh, Krishneil K" <krishneil.k.singh@...el.com>
To: Simon Horman <horms@...nel.org>, "Lobakin, Aleksander"
<aleksander.lobakin@...el.com>
CC: "Drewek, Wojciech" <wojciech.drewek@...el.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, Eric Dumazet <edumazet@...gle.com>, "Kubiak,
Michal" <michal.kubiak@...el.com>, "intel-wired-lan@...ts.osuosl.org"
<intel-wired-lan@...ts.osuosl.org>, NEX SW NCIS OSDT ITP Upstreaming
<nex.sw.ncis.osdt.itp.upstreaming@...el.com>, Jakub Kicinski
<kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, "David S. Miller"
<davem@...emloft.net>
Subject: RE: [Intel-wired-lan] [PATCH iwl] idpf: don't enable NAPI and
interrupts prior to allocating Rx buffers
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of
> Simon Horman
> Sent: Monday, April 29, 2024 5:58 AM
> To: Lobakin, Aleksander <aleksander.lobakin@...el.com>
> Cc: Drewek, Wojciech <wojciech.drewek@...el.com>;
> netdev@...r.kernel.org; linux-kernel@...r.kernel.org; Eric Dumazet
> <edumazet@...gle.com>; Kubiak, Michal <michal.kubiak@...el.com>; intel-
> wired-lan@...ts.osuosl.org; NEX SW NCIS OSDT ITP Upstreaming
> <nex.sw.ncis.osdt.itp.upstreaming@...el.com>; Jakub Kicinski
> <kuba@...nel.org>; Paolo Abeni <pabeni@...hat.com>; David S. Miller
> <davem@...emloft.net>
> Subject: Re: [Intel-wired-lan] [PATCH iwl] idpf: don't enable NAPI and
> interrupts prior to allocating Rx buffers
>
> On Fri, Apr 26, 2024 at 04:44:08PM +0200, Alexander Lobakin wrote:
> > Currently, idpf enables NAPI and interrupts prior to allocating Rx
> > buffers.
> > This may lead to frame loss (there are no buffers to place incoming
> > frames) and even crashes on quick ifup-ifdown. Interrupts must be
> > enabled only after all the resources are here and available.
> > Split interrupt init into two phases: initialization and enabling,
> > and perform the second only after the queues are fully initialized.
> > Note that we can't just move interrupt initialization down the init
> > process, as the queues must have correct a ::q_vector pointer set
> > and NAPI already added in order to allocate buffers correctly.
> > Also, during the deinit process, disable HW interrupts first and
> > only then disable NAPI. Otherwise, there can be a HW event leading
> > to napi_schedule(), but the NAPI will already be unavailable.
> >
> > Fixes: d4d558718266 ("idpf: initialize interrupts and enable vport")
> > Reported-by: Michal Kubiak <michal.kubiak@...el.com>
> > Reviewed-by: Wojciech Drewek <wojciech.drewek@...el.com>
> > Signed-off-by: Alexander Lobakin <aleksander.lobakin@...el.com>
>
> Reviewed-by: Simon Horman <horms@...nel.org>
Tested-by: Krishneil Singh <krishneil.k.singh@...el.com>
Powered by blists - more mailing lists