Re: [reiserfs-list] reiserfs patch for 2.4.0-prerelease (dbench runs)

2001-01-06 Thread Ed Tomlinson

Hi,

I ran a few more benchmarks on 2.4.0 final with 3.6.24.  The results were a 
little susprising (all on the same box, just after boot, no X):

MB/susersystem  cpu time
3.6.24   7.154.0177,6   25% 14:57.5
3.6.24  14.553.2152.4   47%  7:15.7
3.6.24   5.655.6191.0   22% 18:36.4

reiserfs can do well, but notice how the system cpu seconds varies...
I am not seeing such wild differences in ext2 runs, impling that they
are due to something in reiserfs?

Ed Tomlinson


On Thursday 04 January 2001 20:41, Ed Tomlinson wrote:
> Hi,
>
> I have been doing some dbench runs with the original and latest (Jan 4
> 22:xx) prerelease.diff kernels.  Looks like both the latest kernels and the
> reiserfs patch both are costing some performance.
>
> prerelease
>   MB/susersystem  cpu time
> ext2  14.650.5s76.4s  29%  7:14.9m
> ext2  12.650.9s76.7s  25%  8:23.6m
>
> reiser14.553.8s   149.2s  46%  7:16.1m
> reiser10.754.1s   154.5s  35%  9:49.9m
>
> prerelease (2.4.0 jan 4 22:xx)
>   MB/susersystem  cpu time
> ext2  10.552.8s81.5s  22% 10:02.3m
>
> reiser 5.854.6s   198.5s  23% 18:12.5m
> reiser 6.455.1s   188.7s  24% 16.19.3m
>
> Using the notail reiserfs mount option improves the reiserfs numbers 10-20%
> with both kernels.
>
> All benchmarks run on a K6-III 400 with 128M just after boot with no X
> running.
>
> Comments?
> Ed Tomlinson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] reiserfs patch for 2.4.0-prerelease (dbench runs)

2001-01-06 Thread Ed Tomlinson

Hi,

I ran a few more benchmarks on 2.4.0 final with 3.6.24.  The results were a 
little susprising (all on the same box, just after boot, no X):

MB/susersystem  cpu time
3.6.24   7.154.0177,6   25% 14:57.5
3.6.24  14.553.2152.4   47%  7:15.7
3.6.24   5.655.6191.0   22% 18:36.4

reiserfs can do well, but notice how the system cpu seconds varies...
I am not seeing such wild differences in ext2 runs, impling that they
are due to something in reiserfs?

Ed Tomlinson


On Thursday 04 January 2001 20:41, Ed Tomlinson wrote:
 Hi,

 I have been doing some dbench runs with the original and latest (Jan 4
 22:xx) prerelease.diff kernels.  Looks like both the latest kernels and the
 reiserfs patch both are costing some performance.

 prerelease
   MB/susersystem  cpu time
 ext2  14.650.5s76.4s  29%  7:14.9m
 ext2  12.650.9s76.7s  25%  8:23.6m

 reiser14.553.8s   149.2s  46%  7:16.1m
 reiser10.754.1s   154.5s  35%  9:49.9m

 prerelease (2.4.0 jan 4 22:xx)
   MB/susersystem  cpu time
 ext2  10.552.8s81.5s  22% 10:02.3m

 reiser 5.854.6s   198.5s  23% 18:12.5m
 reiser 6.455.1s   188.7s  24% 16.19.3m

 Using the notail reiserfs mount option improves the reiserfs numbers 10-20%
 with both kernels.

 All benchmarks run on a K6-III 400 with 128M just after boot with no X
 running.

 Comments?
 Ed Tomlinson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] reiserfs patch for 2.4.0-prerelease

2001-01-04 Thread Ed Tomlinson

Hi,

I have been doing some dbench runs with the original and latest (Jan 4 22:xx) 
prerelease.diff kernels.  Looks like both the latest kernels and the reiserfs 
patch both are costing some performance.

prerelease
MB/susersystem  cpu time
ext214.650.5s76.4s  29%  7:14.9m
ext212.650.9s76.7s  25%  8:23.6m

reiser  14.553.8s   149.2s  46%  7:16.1m
reiser  10.754.1s   154.5s  35%  9:49.9m

prerelease (2.4.0 jan 4 22:xx)
MB/susersystem  cpu time
ext210.552.8s81.5s  22% 10:02.3m

reiser   5.854.6s   198.5s  23% 18:12.5m
reiser   6.455.1s   188.7s  24% 16.19.3m

Using the notail reiserfs mount option improves the reiserfs numbers 10-20% 
with both kernels.

All benchmarks run on a K6-III 400 with 128M just after boot with no X 
running.

Comments?
Ed Tomlinson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



reiserfs patch for 2.4.0-prerelease

2001-01-04 Thread Chris Mason

Hello everyone,

This patch is meant to be applied on top of the reiserfs
3.6.23 patch to get everything working in the new prerelease
kernels.  The order is:

untar linux-2.4.0-prerelease.tar.bz2
apply linux-2.4.0-test12-reiserfs-3.6.23.gz
apply this patch
apply the fs/super.c patch to make sure fsync_dev is called
when unmounting /.  This was already sent to l-k, I'll send
to the reiserfs list as well.

If you want to apply the prerelease-diff from the testing dir
it can go before or after the reiserfs patches.

These changes have been tested, but still need more.  Don't apply
if you aren't willing to bleed a little.

Changes:

Undoes the fs/buffer.c fuzz error from patching 3.6.23 into the
prerelease kernels.

Remove the super unlocking hack that was needed to avoid 
deadlocks with my old end_io tasks.  The tasks are gone,
so are the deadlocks.

Change around the dirty inode call back so the reiserfs
inodes get properly marked as dirty for the O_SYNC and dirty
page stuff.  This is kind of ugly, and I need to change it
around more.  But, it will work for now.

Add proper O_SYNC and fsync support.

Fix reiserfs makefile and page->mapping->host casts to work with
the new kernel.

Log the super before balancing to avoid warning messages about
logging an unprepared buffer.

Clears the dirty bit before sending buffers to submit_bh
in reiserfs_writepage.

Please send any bug reports to the reiserfs list.

-chris

diff -urN linux-3.6.23/fs/buffer.c linux/fs/buffer.c
--- linux-3.6.23/fs/buffer.cThu Jan  4 15:45:33 2001
+++ linux/fs/buffer.c   Thu Jan  4 15:43:22 2001
@@ -1647,8 +1647,6 @@
buffer_insert_inode_queue(bh, inode);
need_balance_dirty = 1;
}
-   if (buffer_uptodate(bh))
-   continue ;
}
}
 
diff -urN linux-3.6.23/fs/inode.c linux/fs/inode.c
--- linux-3.6.23/fs/inode.c Thu Jan  4 15:45:33 2001
+++ linux/fs/inode.cThu Jan  4 15:43:34 2001
@@ -134,10 +134,6 @@
 void __mark_inode_dirty(struct inode *inode, int flags)
 {
struct super_block * sb = inode->i_sb;
-   if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->dirty_inode){
-   inode->i_sb->s_op->dirty_inode(inode) ;
-   return ;
-   }
if (sb) {
spin_lock(_lock);
if ((inode->i_state & flags) != flags) {
diff -urN linux-3.6.23/fs/reiserfs/Makefile linux/fs/reiserfs/Makefile
--- linux-3.6.23/fs/reiserfs/Makefile   Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/Makefile  Thu Jan  4 15:43:34 2001
@@ -8,10 +8,10 @@
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
 O_TARGET := reiserfs.o
-O_OBJS   := bitmap.o do_balan.o namei.o inode.o file.o dir.o fix_node.o super.o 
prints.o objectid.o \
+obj-y   := bitmap.o do_balan.o namei.o inode.o file.o dir.o fix_node.o super.o 
+prints.o objectid.o \
 lbalance.o ibalance.o stree.o hashes.o buffer2.o tail_conversion.o journal.o resize.o 
tail_conversion.o version.o item_ops.o ioctl.o
 
-M_OBJS   := $(O_TARGET)
+obj-m   := $(O_TARGET)
 
 include $(TOPDIR)/Rules.make
 
diff -urN linux-3.6.23/fs/reiserfs/file.c linux/fs/reiserfs/file.c
--- linux-3.6.23/fs/reiserfs/file.c Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/file.cThu Jan  4 15:43:34 2001
@@ -90,11 +90,9 @@
   if (!S_ISREG(p_s_inode->i_mode))
   BUG ();
 
-  /* step one, flush all dirty buffers in the file's page map to disk */
-  n_err = generic_buffer_fdatasync(p_s_inode, 0, ~0UL) ;
-  
-  /* step two, commit the current transaction to flush any metadata
-  ** changes
+  n_err = fsync_inode_buffers(p_s_inode) ;
+  /* commit the current transaction to flush any metadata
+  ** changes.  sys_fsync takes care of flushing the dirty pages for us
   */
   journal_begin(, p_s_inode->i_sb, jbegin_count) ;
   windex = push_journal_writer("sync_file") ;
diff -urN linux-3.6.23/fs/reiserfs/fix_node.c linux/fs/reiserfs/fix_node.c
--- linux-3.6.23/fs/reiserfs/fix_node.c Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/fix_node.cThu Jan  4 15:43:34 2001
@@ -2499,7 +2499,20 @@
 if ( FILESYSTEM_CHANGED_TB (p_s_tb) )
 return REPEAT_SEARCH;
 }
-
+/* we log the super here so we know it is prepared and inside the
+** transaction before the do_balance starts.  This way, do_balance
+** won't have to prepare it later on, when we aren't allowed to
+** schedule
+*/
+reiserfs_prepare_for_journal(p_s_tb->tb_sb,
+SB_BUFFER_WITH_SB(p_s_tb->tb_sb), 1) ;
+if ( FILESYSTEM_CHANGED_TB (p_s_tb) ) {
+   reiserfs_restore_prepared_buffer(p_s_tb->tb_sb, 
+SB_BUFFER_WITH_SB(p_s_tb->tb_sb)) ;
+   return REPEAT_SEARCH;
+}
+journal_mark_dirty(p_s_tb->transaction_handle, p_s_tb->tb_sb,
+  SB_BUFFER_WITH_SB(p_s_tb->tb_sb)) ;
 #ifndef __KERNEL__
 if ( 

reiserfs patch for 2.4.0-prerelease

2001-01-04 Thread Chris Mason

Hello everyone,

This patch is meant to be applied on top of the reiserfs
3.6.23 patch to get everything working in the new prerelease
kernels.  The order is:

untar linux-2.4.0-prerelease.tar.bz2
apply linux-2.4.0-test12-reiserfs-3.6.23.gz
apply this patch
apply the fs/super.c patch to make sure fsync_dev is called
when unmounting /.  This was already sent to l-k, I'll send
to the reiserfs list as well.

If you want to apply the prerelease-diff from the testing dir
it can go before or after the reiserfs patches.

These changes have been tested, but still need more.  Don't apply
if you aren't willing to bleed a little.

Changes:

Undoes the fs/buffer.c fuzz error from patching 3.6.23 into the
prerelease kernels.

Remove the super unlocking hack that was needed to avoid 
deadlocks with my old end_io tasks.  The tasks are gone,
so are the deadlocks.

Change around the dirty inode call back so the reiserfs
inodes get properly marked as dirty for the O_SYNC and dirty
page stuff.  This is kind of ugly, and I need to change it
around more.  But, it will work for now.

Add proper O_SYNC and fsync support.

Fix reiserfs makefile and page-mapping-host casts to work with
the new kernel.

Log the super before balancing to avoid warning messages about
logging an unprepared buffer.

Clears the dirty bit before sending buffers to submit_bh
in reiserfs_writepage.

Please send any bug reports to the reiserfs list.

-chris

diff -urN linux-3.6.23/fs/buffer.c linux/fs/buffer.c
--- linux-3.6.23/fs/buffer.cThu Jan  4 15:45:33 2001
+++ linux/fs/buffer.c   Thu Jan  4 15:43:22 2001
@@ -1647,8 +1647,6 @@
buffer_insert_inode_queue(bh, inode);
need_balance_dirty = 1;
}
-   if (buffer_uptodate(bh))
-   continue ;
}
}
 
diff -urN linux-3.6.23/fs/inode.c linux/fs/inode.c
--- linux-3.6.23/fs/inode.c Thu Jan  4 15:45:33 2001
+++ linux/fs/inode.cThu Jan  4 15:43:34 2001
@@ -134,10 +134,6 @@
 void __mark_inode_dirty(struct inode *inode, int flags)
 {
struct super_block * sb = inode-i_sb;
-   if (inode-i_sb  inode-i_sb-s_op  inode-i_sb-s_op-dirty_inode){
-   inode-i_sb-s_op-dirty_inode(inode) ;
-   return ;
-   }
if (sb) {
spin_lock(inode_lock);
if ((inode-i_state  flags) != flags) {
diff -urN linux-3.6.23/fs/reiserfs/Makefile linux/fs/reiserfs/Makefile
--- linux-3.6.23/fs/reiserfs/Makefile   Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/Makefile  Thu Jan  4 15:43:34 2001
@@ -8,10 +8,10 @@
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
 O_TARGET := reiserfs.o
-O_OBJS   := bitmap.o do_balan.o namei.o inode.o file.o dir.o fix_node.o super.o 
prints.o objectid.o \
+obj-y   := bitmap.o do_balan.o namei.o inode.o file.o dir.o fix_node.o super.o 
+prints.o objectid.o \
 lbalance.o ibalance.o stree.o hashes.o buffer2.o tail_conversion.o journal.o resize.o 
tail_conversion.o version.o item_ops.o ioctl.o
 
-M_OBJS   := $(O_TARGET)
+obj-m   := $(O_TARGET)
 
 include $(TOPDIR)/Rules.make
 
diff -urN linux-3.6.23/fs/reiserfs/file.c linux/fs/reiserfs/file.c
--- linux-3.6.23/fs/reiserfs/file.c Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/file.cThu Jan  4 15:43:34 2001
@@ -90,11 +90,9 @@
   if (!S_ISREG(p_s_inode-i_mode))
   BUG ();
 
-  /* step one, flush all dirty buffers in the file's page map to disk */
-  n_err = generic_buffer_fdatasync(p_s_inode, 0, ~0UL) ;
-  
-  /* step two, commit the current transaction to flush any metadata
-  ** changes
+  n_err = fsync_inode_buffers(p_s_inode) ;
+  /* commit the current transaction to flush any metadata
+  ** changes.  sys_fsync takes care of flushing the dirty pages for us
   */
   journal_begin(th, p_s_inode-i_sb, jbegin_count) ;
   windex = push_journal_writer("sync_file") ;
diff -urN linux-3.6.23/fs/reiserfs/fix_node.c linux/fs/reiserfs/fix_node.c
--- linux-3.6.23/fs/reiserfs/fix_node.c Thu Jan  4 15:45:33 2001
+++ linux/fs/reiserfs/fix_node.cThu Jan  4 15:43:34 2001
@@ -2499,7 +2499,20 @@
 if ( FILESYSTEM_CHANGED_TB (p_s_tb) )
 return REPEAT_SEARCH;
 }
-
+/* we log the super here so we know it is prepared and inside the
+** transaction before the do_balance starts.  This way, do_balance
+** won't have to prepare it later on, when we aren't allowed to
+** schedule
+*/
+reiserfs_prepare_for_journal(p_s_tb-tb_sb,
+SB_BUFFER_WITH_SB(p_s_tb-tb_sb), 1) ;
+if ( FILESYSTEM_CHANGED_TB (p_s_tb) ) {
+   reiserfs_restore_prepared_buffer(p_s_tb-tb_sb, 
+SB_BUFFER_WITH_SB(p_s_tb-tb_sb)) ;
+   return REPEAT_SEARCH;
+}
+journal_mark_dirty(p_s_tb-transaction_handle, p_s_tb-tb_sb,
+  SB_BUFFER_WITH_SB(p_s_tb-tb_sb)) ;
 #ifndef __KERNEL__
 if ( atomic_read 

Re: [reiserfs-list] reiserfs patch for 2.4.0-prerelease

2001-01-04 Thread Ed Tomlinson

Hi,

I have been doing some dbench runs with the original and latest (Jan 4 22:xx) 
prerelease.diff kernels.  Looks like both the latest kernels and the reiserfs 
patch both are costing some performance.

prerelease
MB/susersystem  cpu time
ext214.650.5s76.4s  29%  7:14.9m
ext212.650.9s76.7s  25%  8:23.6m

reiser  14.553.8s   149.2s  46%  7:16.1m
reiser  10.754.1s   154.5s  35%  9:49.9m

prerelease (2.4.0 jan 4 22:xx)
MB/susersystem  cpu time
ext210.552.8s81.5s  22% 10:02.3m

reiser   5.854.6s   198.5s  23% 18:12.5m
reiser   6.455.1s   188.7s  24% 16.19.3m

Using the notail reiserfs mount option improves the reiserfs numbers 10-20% 
with both kernels.

All benchmarks run on a K6-III 400 with 128M just after boot with no X 
running.

Comments?
Ed Tomlinson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/