[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJhGHyCxR2RgvwMQrNT-82qHKJ-Cok4d2sWy4q7mgtZ_CtXA+w@mail.gmail.com>
Date: Thu, 28 May 2020 08:33:03 +0800
From: Lai Jiangshan <jiangshanlai@...il.com>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>, Tejun Heo <tj@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...nel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: [PATCH v2 2/2] workqueue: Convert the pool::lock and
wq_mayday_lock to raw_spinlock_t
On Thu, May 28, 2020 at 3:47 AM Sebastian Andrzej Siewior
<bigeasy@...utronix.de> wrote:
>
> The workqueue code has it's internal spinlocks (pool::lock), which
> are acquired on most workqueue operations. These spinlocks are
> converted to 'sleeping' spinlocks on a RT-kernel.
>
> Workqueue functions can be invoked from contexts which are truly atomic
> even on a PREEMPT_RT enabled kernel. Taking sleeping locks from such
> contexts is forbidden.
>
> The pool::lock hold times are bound and the code sections are
> relatively short, which allows to convert pool::lock and as a
> consequence wq_mayday_lock to raw spinlocks which are truly spinning
> locks even on a PREEMPT_RT kernel.
>
> With the previous conversion of the manager waitqueue to a simple
> waitqueue workqueues are now fully RT compliant.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
> ---
> kernel/workqueue.c | 176 ++++++++++++++++++++++-----------------------
> 1 file changed, 88 insertions(+), 88 deletions(-)
>
Reviewed-by: Lai Jiangshan <jiangshanlai@...il.com>
Powered by blists - more mailing lists