Shawn,
could you please try this patch in a pristine 2.4.1-pre10? It
gets reiserfs down to 4 milliseconds worst case. If the
system's interactivity is still sluggish with this then
reiserfs isn't the cause.
Thanks.
--- linux-2.4.1-pre10/include/linux/reiserfs_fs.h Tue Jan 23 19:28:16 2001
+++ linux-akpm/include/linux/reiserfs_fs.h Sun Jan 28 22:37:11 2001
@@ -1161,7 +1161,8 @@
#define fs_generation(s) ((s)->u.reiserfs_sb.s_generation_counter)
#define get_generation(s) atomic_read (&fs_generation(s))
#define FILESYSTEM_CHANGED_TB(tb) (get_generation((tb)->tb_sb) != (tb)->fs_gen)
-#define fs_changed(gen,s) (gen != get_generation (s))
+#define __fs_changed(gen,s) (gen != get_generation (s))
+#define fs_changed(gen,s) ({if (current->need_resched) schedule(); __fs_changed(gen,s);})
/***************************************************************************/
--- linux-2.4.1-pre10/fs/reiserfs/journal.c Tue Jan 23 19:28:15 2001
+++ linux-akpm/fs/reiserfs/journal.c Sun Jan 28 22:31:12 2001
@@ -2649,6 +2649,8 @@
}
#endif
wait_on_buffer(bh) ;
+ if (current->need_resched)
+ schedule();
}
retry_count++ ;
}
@@ -3085,6 +3087,8 @@
/* copy all the real blocks into log area. dirty log blocks */
if (test_bit(BH_JDirty, &cn->bh->b_state)) {
struct buffer_head *tmp_bh ;
+ if (current->need_resched)
+ schedule();
tmp_bh = getblk(p_s_sb->s_dev, reiserfs_get_journal_block(p_s_sb) +
((cur_write_start + jindex) % JOURNAL_BLOCK_COUNT),
p_s_sb->s_blocksize) ;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/