Messages in this thread | | | From | (Linus Torvalds) | Subject | Re: spinlock usage - ext2_get_block, lru_list_lock | Date | 21 Mar 2001 08:52:37 -0800 |
| |
In article <20010321180607.A11941@linuxcare.com>, Anton Blanchard <anton@linuxcare.com.au> wrote: > >It was not surprising the BKL was one of the main offenders. Looking at the >stats ext2_get_block was the bad guy (UTIL is % of time lock was busy for, >WAIT is time spent waiting for lock):
Actually, I find the BKL fairly surprising - we've whittled down all the major non-lowlevel-FS offenders, and I didn't realize that it's still there in do_exit().
And the do_exit() case should be _trivial_ to fix: almost none of the code protected by the kernel lock in the exit path actually needs the lock. I suspect you could cut down the kernel lock there to much smaller.
The big case seems to be ext2_get_block(), we'll fix that early in 2.5.x. I think Al already has patches for it.
As to lseek, that one should probably get the inode semaphore, not the kernel lock.
Linus - 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/
| |