Messages in this thread | | | From | Nikita Danilov <> | Date | Mon, 3 Mar 2003 12:45:27 +0300 | Subject | Re: [CHECKER] potential deadlocks |
| |
Andrew Morton writes: > Dawson Engler <engler@csl.stanford.edu> wrote: > > > > BTW, are there known deadlocks (harmless or otherwise)? Debugging > > the checker is a bit hard since false negatives are silent... > > Known deadlocks tend to get fixed. But I am surprised that you did not > encounter more of them. > > btw, the filesystem transaction operations can be treated as sleeping locks. > So for ext3, journal_start()/journal_stop() may, for lock-ranking purposes, > be treated in the same way as taking and releasing a per-superblock > semaphore. Other filesystems probably have similar restrictions. >
So are page-fault and memory allocation events, because thread blocks on them, and deadlocks involving servicing page fault or memory laundering have definitely been seen.
We have (incomplete) description of kernel lock ordering, which is centered around reiser4 locks, but also includes some core kernel stuff.
It is available at
http://www.namesys.com/v4/lock-ordering.dot --- source for Bell-Labs' dot(1) http://www.namesys.com/v4/lock-ordering.ps --- postscript output, produced from the .dot source
> Other such "hidden" sleeping locks are lock_sock() and wait_on_inode(). The > latter is rather messy because there is no clear API function which sets > I_LOCK.
Nikita.
- 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/
| |