> The fact that you observed that it's > somehow related to the timer interrupt seems to strengthen this > suspicion. DEBUG_MUTEXES=n on the other hand should have no such > interrupt-enabling effects.> > [ if this indeed is the case then i'll add irqs_off() checks to> DEBUG_MUTEXES=y, to ensure that the mutex APIs are never called with > interrupts disabled. ]

There's a sad story behind that system_running check in might_sleep(). Because the kernel early boot is running in an in_atomic() state, a greatnumber of bogus might_sleep() warnings come out because of various codedoing potentially-sleepy things. I ended up adding the system_runningtest, with the changelog "OK, I give up. Kill all the might_sleep warningsfrom the early boot process." Undoing that and fixing up the fallout wouldbe a lot of nasty work.