On Fri, Nov 12, 2010 at 02:58:16PM +0100, Johnny Billquist wrote: > >lock(interlock) > >lock(a) > >lock(b) > >unlock(interlock) > > I realized I'm getting sloppy here. When I say locks in this > context, I'm actually talking about spin mutexes. Simple locks are a > different story, since they don't fool with IPL levels at all. > > Also, for spin mutexes I'm not sure the above scenario would make > sense. Since, if they were spin mutexes, assuming once process did > that, and then another did it, the second process would stop at > lock(a), with interlock held. I would assume interlock would be at a > very high ipl, so the first process would never continue, and unlock > a and b, so we'd be in a deadlock. > And if the idea is that we'd stay at the high ipl in the first > process, that more or less would mean that we essentially holds on > to interlock, so why unlock it?
If you have a UP system, it doesn't make a difference, yes. For SMP, it does. It allows other CPUs to continue if other interface, even using the interlock. Joerg