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

Dawson Engler (engler@csl.Stanford.EDU)
Sat, 9 Jun 2001 19:28:11 -0700 (PDT)


> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/