Thread (3 messages) 3 messages, 2 authors, 2020-01-25

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help