netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Eric Dumazet <edumazet@google.com>
Cc: torvalds@linux-foundation.org, mpatocka@redhat.com,
	linux-kernel@vger.kernel.org, dm-devel@lists.linux.dev,
	msnitzer@redhat.com, ignat@cloudflare.com, damien.lemoal@wdc.com,
	bob.liu@oracle.com, houtao1@huawei.com, peterz@infradead.org,
	mingo@kernel.org, netdev@vger.kernel.org, allen.lkml@gmail.com,
	kernel-team@meta.com, "David S. Miller" <davem@davemloft.net>,
	David Ahern <dsahern@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	David Wei <davidhwei@meta.com>
Subject: Re: [PATCH 6/8] net: tcp: tsq: Convert from tasklet to BH workqueue
Date: Fri, 16 Feb 2024 06:24:36 -1000	[thread overview]
Message-ID: <Zc-MRN2tUmsCQLZO@slm.duckdns.org> (raw)
In-Reply-To: <CANn89iKDsJPY=QQrTHK0Jw=s=A_G_GzcOA0WsqXaytWAVV3R4Q@mail.gmail.com>

Hello, Eric. How have you been?

On Fri, Feb 16, 2024 at 09:23:00AM +0100, Eric Dumazet wrote:
...
> TSQ matters for high BDP, and is very time sensitive.
> 
> Things like slow TX completions (firing from napi poll, BH context)
> can hurt TSQ.
> 
> If we add on top of these slow TX completions, an additional work
> queue overhead, I really am not sure...

Just to be sure, the workqueue here is executing in the same softirq context
as tasklets. This isn't the usual workqueue which has to go through the
scheduler. The only difference would be that workqueue does a bit more work
(e.g. to manage the currenty executing hashtable) than tasklet. It's
unlikely to show noticeable latency penalty in any practical case although
the extra overhead would likely be visible in targeted microbenches where
all that happens is scheduling and running noop work items.

> I would recommend tests with pfifo_fast qdisc (not FQ which has a
> special override for TSQ limits)

David, do you think this is something we can do?

> Eventually we could add in TCP a measure of the time lost because of
> TSQ, regardless of the kick implementation (tasklet or workqueue).
> Measuring the delay between when a tcp socket got tcp_wfree approval
> to deliver more packets, and time it finally delivered these packets
> could be implemented with a bpftrace program.

I don't have enough context here but it sounds like you are worried about
adding latency in that path. This conversion is unlikely to make a
noticeable difference there. The interface and sementics are workqueue but
the work items are being executed exactly the same way from the same
softirqs as tasklets. Would testing with pfifo_fast be sufficient to dispel
your concern?

Thanks.

-- 
tejun

  parent reply	other threads:[~2024-02-16 16:24 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-30  9:11 [PATCHSET wq/for-6.9] workqueue: Implement BH workqueue and convert several tasklet users Tejun Heo
2024-01-30  9:11 ` [PATCH 1/8] workqueue: Update lock debugging code Tejun Heo
2024-01-30  9:11 ` [PATCH 2/8] workqueue: Factor out init_cpu_worker_pool() Tejun Heo
2024-01-30  9:11 ` [PATCH 3/8] workqueue: Implement BH workqueues to eventually replace tasklets Tejun Heo
2024-01-30 17:25   ` Linus Torvalds
2024-02-01 11:02   ` Lai Jiangshan
2024-02-01 21:47     ` Tejun Heo
2024-02-02  1:15   ` [PATCH v2 " Tejun Heo
2024-02-04  2:20     ` Lai Jiangshan
2024-02-04 21:29   ` [PATCH v3 " Tejun Heo
2024-02-05  4:48     ` Hillf Danton
2024-02-05 17:47       ` Tejun Heo
2024-02-26  2:00     ` Boqun Feng
2024-02-26 18:47       ` Tejun Heo
2024-02-27  1:38       ` [PATCH for-6.9] workqueue: Drain BH work items on hot-unplugged CPUs Tejun Heo
2024-02-29 20:37         ` Tejun Heo
2024-02-29 21:07           ` Boqun Feng
2024-01-30  9:11 ` [PATCH 4/8] backtracetest: Convert from tasklet to BH workqueue Tejun Heo
2024-01-30  9:11 ` [PATCH 5/8] usb: core: hcd: " Tejun Heo
2024-01-30 16:38   ` Greg Kroah-Hartman
2024-02-20 17:25   ` Davidlohr Bueso
2024-02-20 17:55     ` Linus Torvalds
2024-02-20 18:19       ` Tejun Heo
2024-02-20 19:36       ` Davidlohr Bueso
2024-01-30  9:11 ` [PATCH 6/8] net: tcp: tsq: " Tejun Heo
2024-02-16  5:31   ` Tejun Heo
2024-02-16  8:23     ` Eric Dumazet
2024-02-16 15:52       ` David Wei
2024-02-16 16:24       ` Tejun Heo [this message]
2025-05-25  3:51   ` Jason Xing
2025-05-27 18:55     ` Tejun Heo
2025-05-27 23:43       ` Jason Xing
2024-01-30  9:11 ` [PATCH 7/8] dm-crypt: " Tejun Heo
2024-01-30 10:46   ` Sebastian Andrzej Siewior
2024-01-30 15:53     ` Tejun Heo
2024-01-31 21:23   ` Mikulas Patocka
2024-01-30  9:11 ` [PATCH 8/8] dm-verity: " Tejun Heo
2024-01-31 21:19   ` Mikulas Patocka
2024-01-31 21:32     ` Tejun Heo
2024-01-31 22:02       ` Mikulas Patocka
2024-01-31 23:19       ` Linus Torvalds
2024-02-01  0:04         ` Tejun Heo
2024-02-01  0:19           ` Mike Snitzer
2024-02-20 19:44             ` Mike Snitzer
2024-02-20 20:05               ` Tejun Heo
2024-02-22 21:24                 ` Mike Snitzer
2024-02-23 17:22                   ` Tejun Heo
2024-02-01  0:07         ` Mike Snitzer
2024-01-30  9:22 ` [PATCHSET wq/for-6.9] workqueue: Implement BH workqueue and convert several tasklet users Tejun Heo
2024-01-30 10:20 ` Sebastian Andrzej Siewior
2024-01-30 15:50   ` Tejun Heo
2024-01-30 23:37 ` Allen
2024-02-04 21:33 ` Tejun Heo
2024-02-05 20:50   ` Allen
2024-02-05 21:12     ` Tejun Heo
2024-02-05 21:31       ` Allen
2024-02-07 19:02         ` Allen
2024-02-08 16:56           ` Tejun Heo
2024-02-08 19:07             ` Allen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zc-MRN2tUmsCQLZO@slm.duckdns.org \
    --to=tj@kernel.org \
    --cc=allen.lkml@gmail.com \
    --cc=bob.liu@oracle.com \
    --cc=damien.lemoal@wdc.com \
    --cc=davem@davemloft.net \
    --cc=davidhwei@meta.com \
    --cc=dm-devel@lists.linux.dev \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=houtao1@huawei.com \
    --cc=ignat@cloudflare.com \
    --cc=kernel-team@meta.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=msnitzer@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).