[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210414093541.39706863@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Wed, 14 Apr 2021 09:35:41 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: "Y.b. Lu" <yangbo.lu@....com>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"David S . Miller" <davem@...emloft.net>,
Richard Cochran <richardcochran@...il.com>,
Claudiu Manoil <claudiu.manoil@....com>,
Vladimir Oltean <vladimir.oltean@....com>,
Russell King <linux@...linux.org.uk>
Subject: Re: [net-next] enetc: fix locking for one-step timestamping packet
transfer
On Wed, 14 Apr 2021 06:18:57 +0000 Y.b. Lu wrote:
> > On Tue, 13 Apr 2021 11:48:17 +0800 Yangbo Lu wrote:
> > > + /* Queue one-step Sync packet if already locked */
> > > + if (skb->cb[0] & ENETC_F_TX_ONESTEP_SYNC_TSTAMP) {
> > > + if
> > (test_and_set_bit_lock(ENETC_TX_ONESTEP_TSTAMP_IN_PROGRESS,
> > > + &priv->flags)) {
> > > + skb_queue_tail(&priv->tx_skbs, skb);
> > > + return NETDEV_TX_OK;
> > > + }
> > > + }
> >
> > Isn't this missing queue_work() as well?
> >
> > Also as I mentioned I don't understand why you created a separate workqueue
> > instead of using the system workqueue via schedule_work().
>
> queue_work(system_wq, ) was put in clean_tx. I finally followed the
> logic you suggested :)
Ah, I didn't look close enough. I was expecting to see schedule_work(),
please consider sending a follow up, queue_work(system_wq, $work) is a
rare construct.
Powered by blists - more mailing lists