Re: [CHECKER] a couple potential deadlocks in 2.4.5-ac8

Dawson Engler
2001-06-10T02:28:30Z

> On Sat, 9 Jun 2001, Alexander Viro wrote:
> >
> > Another difference from spinlocks is that BKL is recursive. I'm
> > actually surprised that it didn't show up first.
>
> Good point. Spinlocks (with the exception of read-read locks, of course)
> and semaphores will deadlock on recursive use, while the BKL has this
> "process usage counter" recursion protection.

Actually, it did show up all over the place --- I'd just selected two
candidates to examine out of hundreds. (Checking call chains is
strenous, even when you know what you're looking for.)

> And I suspect that the current checker doesn't realize that any user mode
> access is equivalent to calling "do_page_fault()" from a call-chain
> standpoint.
>
> Dawson - the user-mode access part is probably _the_ most interesting from
> a lock checking standpoint, could you check doing the page fault case?

Sure, it's a pretty interaction. To be sure about the rule: any *_user
call can be treated as an implicit invocation of do_page_fault?

Dawson