On Thu, 8 Sep 2016, Sebastian Andrzej Siewior wrote: > + if (parent == dentry) { > + /* the task with the highest priority won't schedule */ > + r = cond_resched(); > + if (!r && (rt_task(current) || dl_task(current))) That's wrong because a non RT task will just spin until its time slice is up. Wasted cycles for nothing. Ideally we make spinning conditional on !on_cpu(dentry->lock->owner) That would avoid going to sleep if the owner runs on another cpu. We have no mechanism for that, but I think it'd be worth to think about one. > + cpu_chill(); > + } else > + dentry = parent; Missing braces Thanks, tglx -- 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