On Thu, 2010-12-09 at 22:39 -0800, Michel Lespinasse wrote: > I think rwsem_is_contended() actually sounds better than fiddling with > constants, but OTOH maybe the mlock use case is not significant enough > to justify introducing that new API. Right, so I don't see the problem with _is_contended() either. In fact, I introduce mutex_is_contended() in the mmu_preempt series to convert existing (spin) lock break tests. If you want to do lock-breaks like cond_resched_lock() all you really have is *_is_contended(), sleeping locks will schedule unconditional. int cond_break_mutex(struct mutex *mutex) { int ret = 0; if (mutex_is_contended(mutex)) { mutex_unlock(mutex); ret = 1; mutex_lock(mutex); } return 1; } Or more exotic lock breaks, like the mmu-gather stuff, which falls out of its nested page-table loops and restarts the whole affair. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href