Messages in this thread | | | Date | Sun, 18 Apr 2010 06:55:00 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH 01/13] powerpc: Add rcu_read_lock() to gup_fast() implementation |
| |
On Sat, Apr 17, 2010 at 10:06:36PM -0500, James Bottomley wrote: > On Fri, 2010-04-16 at 09:45 -0700, Paul E. McKenney wrote: > > o mutex_lock(): Critical sections need not guarantee > > forward progress, as general blocking is permitted. > > This isn't quite right. mutex critical sections must guarantee eventual > forward progress against the class of other potential acquirers of the > mutex otherwise the system will become either deadlocked or livelocked.
If I understand you correctly, you are saying that it is OK for a given critical section for a given mutex to fail to make forward progress if nothing else happens to acquire that mutex during that time. I would agree, at least I would if you were to further add that the soft-lockup checks permit an additional 120 seconds of failure to make forward progress even if something -is- attempting to acquire that mutex.
By my standards, 120 seconds is a reasonable approximation to infinity, hence my statement above.
So, would you agree with the following as a more precise statement?
o mutex_lock(): Critical sections need not guarantee forward progress unless some other task is waiting on the mutex in question, in which case critical sections should complete in 120 seconds.
Thanx, Paul
| |