On Thu, Mar 17, 2016 at 08:36:05AM +0100, Peter Zijlstra wrote: > On Wed, Mar 16, 2016 at 10:17:51PM -0400, Steven Rostedt wrote: > > Actually, the preempt off section here is not really an issue: > > > > rcu_read_lock(); > > while (owner_running(lock, owner)) { > > if (need_resched()) > > break; > > > > cpu_relax_lowlatency(); > > } > > rcu_read_unlock(); > > > > Although preemption may be disabled, that "need_resched()" check will > > break out of the loop if a higher priority task were to want to run on > > this CPU. > > > > I probably should add a hook there to let the preemptoff tracer know > > that this is not an issue. > > Urgh, there's a lot of such spin loops all over, that's going to be a > pain to annotate all. scanning for that patter with a quite relaxed spatch did not turn up more than a hand full: @resched_spin exists@ position p; @@ ( * while@p (...) { ... if (need_resched() || ...) break; ... \(cpu_relax\|cpu_relax_lowlatency\)(); } | * while@p (!need_resched()) { ... \(cpu_relax\|cpu_relax_lowlatency\)(); } ) @script:python@ p << resched_spin.p; @@ print "%s:%s " % (p[0].file,p[0].line) is this making some wrong assumptions here or is this really so infrequent ? thx! hofrat -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html