Re: [PATCH 1/7] locking/rwsem: don't resched at the end of optimistic spinning
From: Waiman Long <hidden>
Date: 2014-08-05 17:54:43
Also in:
lkml
On 08/04/2014 04:48 PM, Peter Zijlstra wrote:
On Mon, Aug 04, 2014 at 02:36:35PM -0400, Waiman Long wrote:quoted
On 08/04/2014 03:55 AM, Peter Zijlstra wrote:quoted
On Sun, Aug 03, 2014 at 10:36:16PM -0400, Waiman Long wrote:quoted
For a fully preemptive kernel, a call to preempt_enable() could potentially trigger a task rescheduling event. In the case of rwsem optimistic spinning, the task has either gotten the lock or is going to sleep soon. So there is no point to do rescheduling here.Uh what? Why shouldn't we preempt if we've gotten the lock? What if a FIFO task just woke up?I didn't mean that we shouldn't preempt if there is a higher priority task. I am sure that there will be other preemption points along the way that a higher priority task can take over the CPU. I just want to say that doing it here may not be the best place especially if the task is going to sleep soon. If you think this patch does not make sense, I can remove it as other patches in the set has no dependency on this one.Yeah, its actively harmful, you delay preemption by an unspecified amount of time in case of the spin-acquire. We've had such bugs in -rt and they're not fun. Basically the only time you should use no_resched is if the very next statement is schedule().
Thank for the clarification. I will remove patch 1 from the patch set. -Longman