On Wed, 2008-05-07 at 20:34 -0700, Linus Torvalds wrote: > > On Thu, 8 May 2008, Zhang, Yanmin wrote: > > > > On Tue, 2008-05-06 at 10:23 -0600, Matthew Wilcox wrote: > > > On Tue, May 06, 2008 at 06:09:34AM -0600, Matthew Wilcox wrote: > > > > So the only likely things I can see are: > > > > > > > > - file locks > > > > - fasync > > > > > > I've wanted to fix file locks for a while. Here's a first attempt. > > > It was done quickly, so I concede that it may well have bugs in it. > > > I found (and fixed) one with LTP. > > > > > > It takes *no account* of nfsd, nor remote filesystems. We need to have > > > a serious discussion about their requirements. > > > > I tested it on 8-core stoakley. aim7 result becomes 23% worse than the one of > > pure 2.6.26-rc1. > > Ouch. That's really odd. The BKL->spinlock conversion looks really > obvious, so it shouldn't be that noticeably slower. > > The *one* difference is that the BKL has the whole "you can take it > recursively and you can sleep without dropping it because the scheduler > will drop it for you" thing. The spinlock conversion changed all of that > into explicit "drop and retake" locks, and maybe that causes some issues. > > But 23% worse? That sounds really odd/extreme. > > Can you do a oprofile run or something? I collected oprofile data. It looks not useful, as cpu idle is more than 50%. samples % app name symbol name 270157 9.4450 multitask add_long 266419 9.3143 multitask add_int 238934 8.3534 multitask add_double 187184 6.5442 multitask mul_double 159448 5.5745 multitask add_float 156312 5.4649 multitask sieve 148081 5.1771 multitask mul_float 127192 4.4468 multitask add_short 80480 2.8137 multitask string_rtns_1 57520 2.0110 vmlinux clear_page_c 53935 1.8856 multitask div_long 48753 1.7045 libc-2.6.90.so strncat 40825 1.4273 multitask array_rtns 32807 1.1470 vmlinux __copy_user_nocache 31995 1.1186 multitask div_int 31143 1.0888 multitask div_float 28821 1.0076 multitask div_double 26400 0.9230 vmlinux find_lock_page 26159 0.9146 vmlinux unmap_vmas 25249 0.8827 multitask div_short 21509 0.7520 vmlinux native_read_tsc 18865 0.6595 vmlinux copy_user_generic_string 17993 0.6291 vmlinux copy_page_c 16367 0.5722 vmlinux system_call 14616 0.5110 libc-2.6.90.so msort_with_tmp 13630 0.4765 vmlinux native_sched_clock 12952 0.4528 vmlinux copy_page_range 12817 0.4481 libc-2.6.90.so strcat 12708 0.4443 vmlinux calc_delta_mine 12611 0.4409 libc-2.6.90.so memset 11631 0.4066 bash (no symbols) 9991 0.3493 vmlinux update_curr 9328 0.3261 vmlinux unlock_page -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html