From: Boqun Feng <boqun.feng@gmail.com>
To: Tejun Heo <tj@kernel.org>
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, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH for-6.9] workqueue: Drain BH work items on hot-unplugged CPUs
Date: Thu, 29 Feb 2024 13:07:21 -0800 [thread overview]
Message-ID: <ZeDyCSxtshb6MFLA@boqun-archlinux> (raw)
In-Reply-To: <ZeDrCMLlzVZpvbrG@slm.duckdns.org>
On Thu, Feb 29, 2024 at 10:37:28AM -1000, Tejun Heo wrote:
> On Mon, Feb 26, 2024 at 03:38:55PM -1000, Tejun Heo wrote:
> > Boqun pointed out that workqueues aren't handling BH work items on offlined
> > CPUs. Unlike tasklet which transfers out the pending tasks from
> > CPUHP_SOFTIRQ_DEAD, BH workqueue would just leave them pending which is
> > problematic. Note that this behavior is specific to BH workqueues as the
> > non-BH per-CPU workers just become unbound when the CPU goes offline.
> >
> > This patch fixes the issue by draining the pending BH work items from an
> > offlined CPU from CPUHP_SOFTIRQ_DEAD. Because work items carry more context,
> > it's not as easy to transfer the pending work items from one pool to
> > another. Instead, run BH work items which execute the offlined pools on an
> > online CPU.
> >
> > Note that this assumes that no further BH work items will be queued on the
> > offlined CPUs. This assumption is shared with tasklet and should be fine for
> > conversions. However, this issue also exists for per-CPU workqueues which
> > will just keep executing work items queued after CPU offline on unbound
> > workers and workqueue should reject per-CPU and BH work items queued on
> > offline CPUs. This will be addressed separately later.
> >
> > Signed-off-by: Tejun Heo <tj@kernel.org>
> > Reported-by: Boqun Feng <boqun.feng@gmail.com>
> > Link: http://lkml.kernel.org/r/Zdvw0HdSXcU3JZ4g@boqun-archlinux
>
> Applying this to wq/for-6.9.
>
FWIW,
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
(I took a look yesterday, but hasn't gotten the time to reply..)
Regards,
Boqun
> Thanks.
>
> --
> tejun
next prev parent reply other threads:[~2024-02-29 21:08 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 [this message]
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
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=ZeDyCSxtshb6MFLA@boqun-archlinux \
--to=boqun.feng@gmail.com \
--cc=allen.lkml@gmail.com \
--cc=bob.liu@oracle.com \
--cc=damien.lemoal@wdc.com \
--cc=dm-devel@lists.linux.dev \
--cc=houtao1@huawei.com \
--cc=ignat@cloudflare.com \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mpatocka@redhat.com \
--cc=msnitzer@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.