Re: [patch 12/19] softirq: Add RT specific softirq accounting
From: Thomas Gleixner <hidden>
Date: 2020-11-19 18:34:44
Also in:
linux-sh, linux-um, lkml
On Thu, Nov 19 2020 at 13:18, Frederic Weisbecker wrote:
On Fri, Nov 13, 2020 at 03:02:19PM +0100, Thomas Gleixner wrote:quoted
RT requires the softirq to be preemptible and uses a per CPU local lock to protect BH disabled sections and softirq processing. Therefore RT cannot use the preempt counter to keep track of BH disabled/serving. Add a RT only counter to task struct and adjust the relevant macros in preempt.h.You may want to describe a bit the reason for this per task counter. It's not intuitive at this stage.
Something like this:
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.
Thanks,
tglx
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel