Messages in this thread Patch in this message | | | Date | Sat, 28 Aug 2004 14:14:13 +0200 | From | Ingo Molnar <> | Subject | Re: [patch] voluntary-preempt-2.6.8.1-P9 |
| |
* Lee Revell <rlrevell@joe-job.com> wrote:
> > http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.8.1-P9 > > Hmm, it seems that those strange ~1ms latencies are back. This was > triggered by mounting an NTFS volume: > > http://krustophenia.net/testresults.php?dataset=2.6.8.1-P9#/var/www/2.6.8.1-P9/trace5.txt
this is genuine NTFS overhead.
the 1 msec events you get because the timer fires once every 1 msec, but this is not irregular. There is a single NTFS function running, which is profiled nicely by the timer IRQ:
00010001 0.372ms (+0.372ms): do_IRQ (load_and_init_upcase) ... 00010001 1.374ms (+0.981ms): do_IRQ (load_and_init_upcase) ... 00010001 2.376ms (+0.978ms): do_IRQ (load_and_init_upcase) ... 00000001 2.615ms (+0.216ms): vfree (load_and_init_upcase)
to be able to debug such latencies is one reason why i changed the do_IRQ() trace-entry to show the interrupted function's name. (it wouldnt normally, mcount() doesnt reach across IRQ frames.)
load_and_init_upcase() is called by ntfs_fill_super() which is called by the mount code, which runs under lock_kernel(). It seems NTFS does not rely on the BKL - could you try the patch below, does it solve the latency?
Ingo
--- linux/fs/ntfs/super.c.orig +++ linux/fs/ntfs/super.c @@ -2288,6 +2288,8 @@ static int ntfs_fill_super(struct super_ vol->fmask = 0177; vol->dmask = 0077; + unlock_kernel(); + /* Important to get the mount options dealt with now. */ if (!parse_options(vol, (char*)opt)) goto err_out_now; @@ -2424,6 +2426,7 @@ static int ntfs_fill_super(struct super_ } up(&ntfs_lock); sb->s_export_op = &ntfs_export_ops; + lock_kernel(); return 0; } ntfs_error(sb, "Failed to allocate root directory."); @@ -2527,6 +2530,7 @@ iput_tmp_ino_err_out_now: } /* Errors at this stage are irrelevant. */ err_out_now: + lock_kernel(); sb->s_fs_info = NULL; kfree(vol); ntfs_debug("Failed, returning -EINVAL."); - 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/
| |