Summary: | [ufs] dirhash on very large directories blocks the machine for tens of seconds | ||
---|---|---|---|
Product: | Base System | Reporter: | Martin Birgmeier <martin> |
Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
Status: | Open --- | ||
Severity: | Affects Only Me | CC: | chris |
Priority: | Normal | ||
Version: | 6.2-RELEASE | ||
Hardware: | Any | ||
OS: | Any |
Description
Martin Birgmeier
2007-11-10 08:10:00 UTC
Responsible Changed From-To: freebsd-bugs->iedowse Over to Ian, who wrote UFS dirhash. Responsible Changed From-To: iedowse->freebsd-bugs iedowse is not actively working on this problem ATM. While the kernel scheduler will not preempt a thread in the kernel (e.g. during a system call) if a timeslice expires, it will preempt that thread for interrupts (assuming you have 'options PREEMPTION' enabled which has been on by default in GENERIC for some time now on i386), thus the dirhash calculations should not starve interrupts. However, X is not an interrupt, so while things like ping should still work, X will not get to run. While it would be tempting to defer the hashing of the directory contents to an asynchronous task for large directories running in a thread with a low priority, this might have bad side effects due to priority inversions related to a very low priority thread holding various vnode locks. -- John Baldwin Responsible Changed From-To: freebsd-bugs->freebsd-fs Over to maintainer(s). For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped |