Thread (2 messages) 2 messages, 2 authors, 2021-07-23

Re: [PATCH] eventfd: protect eventfd_wake_count with a local_lock

From: Nicolas Saenz Julienne <hidden>
Date: 2021-07-23 14:54:20
Also in: linux-fsdevel, lkml

On Mon, 19 Jul 2021 09:54:52 +0200, Daniel Bristot de Oliveira wrote:
eventfd_signal assumes that spin_lock_irqsave/spin_unlock_irqrestore is
non-preemptable and therefore increments and decrements the percpu
variable inside the critical section.

This obviously does not fly with PREEMPT_RT. If eventfd_signal is
preempted and an unrelated thread calls eventfd_signal, the result is
a spurious WARN. To avoid this, protect the percpu variable with a
local_lock.

Reported-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Fixes: b5e683d5cab8 ("eventfd: track eventfd_signal() recursion depth")
Cc: He Zhe <redacted>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Thomas Gleixner <redacted>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Co-developed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
---
Tested-by: Nicolas Saenz Julienne <redacted>

Thanks!

--
Nicolás Sáenz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help