Re: [PATCH v8 4/5] locking/qspinlock: Introduce starvation avoidance into CNA
From: Waiman Long <longman@redhat.com>
Date: 2020-01-25 19:57:54
Also in:
linux-arch, lkml
From: Waiman Long <longman@redhat.com>
Date: 2020-01-25 19:57:54
Also in:
linux-arch, lkml
On 1/24/20 1:51 PM, Waiman Long wrote:
quoted
You can use the in_task() macro in include/linux/preempt.h. This is just a percpu preempt_count read and test. If in_task() is false, it is in a {soft|hard}irq or nmi context. If it is true, you can check the rt_task() macro to see if it is an RT task. That will access to the current task structure. So it may cost a little bit more if you want to handle the RT task the same way.We may not need to do that for softIRQ context. If that is the case, you can use in_irq() which checks for hardirq and nmi only. Peter, what is your thought on that?
In second thought, we should do that for softIRQ as well. Also, we may want to also check if irqs_disabled() is true as well by calls like spin_lock_irq() or spin_lock_irqsave(). We do not want to unnecessarily prolong the irq off period. Cheers, Longman _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel