]> www.infradead.org Git - users/jedix/linux-maple.git/commit
softirq: Add RT specific softirq accounting
authorThomas Gleixner <tglx@linutronix.de>
Tue, 9 Mar 2021 08:55:53 +0000 (09:55 +0100)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 6 Apr 2021 23:07:13 +0000 (16:07 -0700)
commitec828e4e684a396cba48b53d548bb0bd9ad7de1b
tree7a5a9d39bdc830581cd7e32b36c10f3213d8bc02
parent3f759a627e709461474461c7c1a4036a3a24c233
softirq: Add RT specific softirq accounting

RT requires the softirq processing and local bottomhalf disabled regions to
be preemptible. Using the normal preempt count based serialization is
therefore not possible because this implicitely disables preemption.

RT kernels use a per CPU local lock to serialize bottomhalfs. As
local_bh_disable() can nest the lock can only be acquired on the outermost
invocation of local_bh_disable() and released when the nest count becomes
zero. Tasks which hold the local lock can be preempted so its required to
keep track of the nest count per task.

Add a RT only counter to task struct and adjust the relevant macros in
preempt.h.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/hardirq.h
include/linux/preempt.h
include/linux/sched.h