lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CACKFLim6okW1q=APD4nftB2=PRPtgmE1+pXx3bSuhkOPwrM_Jw@mail.gmail.com>
Date: Thu, 27 Jul 2023 12:40:59 -0700
From: Michael Chan <michael.chan@...adcom.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com, 
	pabeni@...hat.com, gospo@...adcom.com
Subject: Re: [PATCH net] bnxt: don't handle XDP in netpoll

On Thu, Jul 27, 2023 at 12:29 PM Michael Chan <michael.chan@...adcom.com> wrote:
>
> On Thu, Jul 27, 2023 at 12:05 PM Jakub Kicinski <kuba@...nel.org> wrote:
> >
> > I see...
> >
> > Do you prefer adding a return value to tx_int() to tell
> > __bnxt_poll_work_done() whether the work has been done;
> > or to clear tx_pkts in the handler itself rather than
> > the caller?
> >
>
> It's a bigger problem.  When we transmit packets, we store these
> packet buffers and advance the producer index.  The completion ring
> tells us how many TX packets have completed.  We then walk the TX ring
> for the number of TX packets completed and free the buffers.  If we
> cannot free the buffers now, we have to save this information (the
> consumer index).  We won't get this information again in the
> completion ring.

I reread your comments again.  Yes, if we don't clear bnapi->tx_pkts
if we do nothing, it should work.  Since we always free all the
packets or none, it might be easier to clear it in the tx_int handler.

Download attachment "smime.p7s" of type "application/pkcs7-signature" (4209 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ