[reiserfs-list] reiserfs_read_inode2: dead inode read from disk

2002-04-29 Thread Basil A. Evseenko

clm-6004: convert tail failed inode 2300597, error -122
clm-6004: convert tail failed inode 2300597, error -122
clm-6004: convert tail failed inode 2300597, error -122
clm-6004: convert tail failed inode 2300597, error -122
clm-6004: convert tail failed inode 4563293, error -122
vs-13075: reiserfs_read_inode2: dead inode read from disk [3547658 9266355 0x0 SD]. 
This is likely to be race with knfsd. Ignore
vs-2100: add_save_link:search_by_key ([-1 9266355 0x1001 DIRECT]) returned 1
PAP-5660: reiserfs_do_truncate: wrong result -1 of search for [3547658 9266355 
0xfff DIRECT]
vs-5355: reiserfs_delete_solid_item: [3547658 9266355 0x0 SD] not found

Is this a bug, or a warning ?
This appear very seldom (approx. 1 time per month) on high filesystem load. 
(This is a NFS server, that share home directories to ~ 200 clients) 

Linux version 2.4.19-pre5 (root@home) (gcc version 2.95.3 20010315 (release)) #1 Sat 
Mar 30 14:26:43 MSK 2002
Reiserfs quota patch from 
ftp://ftp.suse.com/pub/people/mason/patches/reiserfs/quota-2.4


processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model   : 8
model name  : Pentium III (Coppermine)
stepping: 10
cpu MHz : 1002.304
cache size  : 256 KB
fdiv_bug: no
hlt_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 2
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 mmx fxsr sse
bogomips: 1998.84

Module  Size  Used by
nfs72640   0  (autoclean)
nfsd   66800   8  (autoclean)
lockd  48064   1  (autoclean) [nfs nfsd]
sunrpc 59744   1  (autoclean) [nfs nfsd lockd]
eepro100   17184   1  (autoclean)




Re: [reiserfs-list] reiserfs_read_inode2: dead inode read from disk

2002-04-29 Thread Oleg Drokin

Hello!

On Mon, Apr 29, 2002 at 03:13:35PM +0400, Basil A. Evseenko wrote:

 clm-6004: convert tail failed inode 2300597, error -122

This one failed because of disk quota exceed. Safe to ignore I assume.

 vs-13075: reiserfs_read_inode2: dead inode read from disk [3547658 9266355 0x0 SD]. 
This is likely to be race with knfsd. Ignore

This one is safe, as it told you already.

 vs-2100: add_save_link:search_by_key ([-1 9266355 0x1001 DIRECT]) returned 1
 PAP-5660: reiserfs_do_truncate: wrong result -1 of search for [3547658 9266355 
0xfff DIRECT]
 vs-5355: reiserfs_delete_solid_item: [3547658 9266355 0x0 SD] not found

This one seems to be some kind of race. We have yet to found a way to reproduce.
But it's quite safe, anyway.

Bye,
Oleg



[reiserfs-list] fsync() Performance Issue

2002-04-29 Thread berthiaume_wayne

I'm wondering if anyone out there may have some suggestions on how
to improve the performance of a system employing fsync(). I have to be able
to guaranty that every write to my fileserver is on disk when the client has
passed it to the server. Therefore, I have disabled write cache on the disk
and issue an fsync() per file. I'm running 2.4.19-pre7, reiserfs 3.6.25,
without additional patches. I have seen some discussions out here about
various other speed-up patches and am wondering if I need to add these to
2.4.19-pre7? And what they are and where can I obtain said patches? Also,
I'm wondering if there is another solution to syncing the data that is
faster than fsync(). Testing, thusfar, has shown a large disparity between
running with and without sync.Another idea is to explore another filesystem,
but I'm not exactly excited by the other journaling filesystems out there at
this time. All ideas will be greatly appreciated.

Wayne
EMC Corp
Centera Engineering
4400 Computer Drive
M/S F213
Westboro,  MA01580

email:   [EMAIL PROTECTED]
voice:   (508) 898-6564
pager: (888) 769-4578  (numeric)
[EMAIL PROTECTED]  (alpha)
fax:  (508) 898-6388

One man can make a difference, and every man should try.  - JFK

 Wayne Berthiaume (E-mail).vcf 



Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Russell Coker

On Fri, 26 Apr 2002 22:28, [EMAIL PROTECTED] wrote:

It's interesting to note your email address and what it implies...

   I'm wondering if anyone out there may have some suggestions on how
 to improve the performance of a system employing fsync(). I have to be able
 to guaranty that every write to my fileserver is on disk when the client
 has passed it to the server. Therefore, I have disabled write cache on the
 disk and issue an fsync() per file. I'm running 2.4.19-pre7, reiserfs
 3.6.25, without additional patches. I have seen some discussions out here
 about various other speed-up patches and am wondering if I need to add
 these to 2.4.19-pre7? And what they are and where can I obtain said
 patches? Also, I'm wondering if there is another solution to syncing the
 data that is faster than fsync(). Testing, thusfar, has shown a large
 disparity between running with and without sync.Another idea is to explore
 another filesystem, but I'm not exactly excited by the other journaling
 filesystems out there at this time. All ideas will be greatly appreciated.

These issues have been discussed a few times, but not with any results as 
exciting as you might hope for.  One which was mentioned was using 
fdatasync() instead of fsync().

One thing that has occurred to me (which has not been previously discussed as 
far as I recall) is the possibility for using sync() instead of fsync() if 
you can accumulate a number of files (and therefore replace many fsync()'s 
with one sync() ).

-- 
If you send email to me or to a mailing list that I use which has 4 lines
of legalistic junk at the end then you are specifically authorizing me to do
whatever I wish with the message and all other messages from your domain, by
posting the message you agree that your long legalistic sig is void.



Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Toby Dickenson

On Mon, 29 Apr 2002 18:20:18 +0200, Russell Coker
[EMAIL PROTECTED] wrote:

On Fri, 26 Apr 2002 22:28, [EMAIL PROTECTED] wrote:

It's interesting to note your email address and what it implies...

  I'm wondering if anyone out there may have some suggestions on how
 to improve the performance of a system employing fsync(). I have to be able
 to guaranty that every write to my fileserver is on disk when the client
 has passed it to the server. Therefore, I have disabled write cache on the
 disk and issue an fsync() per file. I'm running 2.4.19-pre7, reiserfs
 3.6.25, without additional patches. I have seen some discussions out here
 about various other speed-up patches and am wondering if I need to add
 these to 2.4.19-pre7? And what they are and where can I obtain said
 patches? Also, I'm wondering if there is another solution to syncing the
 data that is faster than fsync(). Testing, thusfar, has shown a large
 disparity between running with and without sync.Another idea is to explore
 another filesystem, but I'm not exactly excited by the other journaling
 filesystems out there at this time. All ideas will be greatly appreciated.

These issues have been discussed a few times, but not with any results as 
exciting as you might hope for.  One which was mentioned was using 
fdatasync() instead of fsync().

One thing that has occurred to me (which has not been previously discussed as 
far as I recall) is the possibility for using sync() instead of fsync() if 
you can accumulate a number of files (and therefore replace many fsync()'s 
with one sync() ).

I can see

write to file A
write to file B
write to file C
sync

might be faster than

write to file A
fsync A
write to file B
fsync B
write to file C
fsync C

but is it possible for it to be faster than

write to file A
write to file B
write to file C
fsync A
fsync B
fsync C

?



Toby Dickenson
[EMAIL PROTECTED]



Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Chris Mason

On Mon, 2002-04-29 at 12:20, Russell Coker wrote:
 On Fri, 26 Apr 2002 22:28, [EMAIL PROTECTED] wrote:
 
 It's interesting to note your email address and what it implies...
 
  I'm wondering if anyone out there may have some suggestions on how
  to improve the performance of a system employing fsync(). I have to be able
  to guaranty that every write to my fileserver is on disk when the client
  has passed it to the server. Therefore, I have disabled write cache on the
  disk and issue an fsync() per file. I'm running 2.4.19-pre7, reiserfs
  3.6.25, without additional patches. I have seen some discussions out here
  about various other speed-up patches and am wondering if I need to add
  these to 2.4.19-pre7? And what they are and where can I obtain said
  patches? Also, I'm wondering if there is another solution to syncing the
  data that is faster than fsync(). Testing, thusfar, has shown a large
  disparity between running with and without sync.Another idea is to explore
  another filesystem, but I'm not exactly excited by the other journaling
  filesystems out there at this time. All ideas will be greatly appreciated.
 
 These issues have been discussed a few times, but not with any results as 
 exciting as you might hope for.  One which was mentioned was using 
 fdatasync() instead of fsync().

The speedup patches should help fsync some, since they make it much more
likely a commit will be done without the journal lock held.

If all the writes on the FS end up being done through fsync, the data
logging patches might help a lot.  These should be ready for broader
testing this week.

If you are using IDE drives, the write barrier patches are almost enough
to allow you to turn on write caching safely.  They make sure metadata
triggers proper drive cache flushes, I can try to rig up something that
will also trigger a cache flush on data syncs.

-chris





Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Chris Mason

On Mon, 2002-04-29 at 12:32, Toby Dickenson wrote:

 One thing that has occurred to me (which has not been previously discussed as 
 far as I recall) is the possibility for using sync() instead of fsync() if 
 you can accumulate a number of files (and therefore replace many fsync()'s 
 with one sync() ).
 
 I can see
 
 write to file A
 write to file B
 write to file C
 sync
 
 might be faster than
 
 write to file A
 fsync A
 write to file B
 fsync B
 write to file C
 fsync C

Correct.

 
 but is it possible for it to be faster than
 
 write to file A
 write to file B
 write to file C
 fsync A
 fsync B
 fsync C

It depends on the rest of the system.  sync() goes through the big lru
list for the whole box, and fsync() goes through the private list for
just that inode.  If you've got other devices or files with dirty data,
case C that you presented will always be the fastest.  For general use,
I like this one the best, it is what the journal code is optimized for.

If files A, B, and C are the only dirty things on the whole box, a
single sync() will be slightly better, mostly due to reduced cpu time.

-chris





Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Matthias Andree

Toby Dickenson [EMAIL PROTECTED] writes:

 write to file A
 write to file B
 write to file C
 sync

Be careful with this approach. Apart from syncing other processes' dirty
data, sync() does not make the same guarantees as fsync() does.

Barring write cache effects, fsync() only returns after all blocks are
on disk. While I'm not sure if and if yes, which, Linux file systems are
affected, but for portable applications, be aware that sync() may return
prematurely (and is allowed to!).

-- 
Matthias Andree



RE: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread berthiaume_wayne

Agreed, it would be better to sync to disk after multiple files
rather than serially; however, in the interest of not being concerned of a
power outage during the process, one of the reason the disk cache is
disabled, the choice was to fsync() each write.  

-Original Message-
From: Chris Mason [mailto:[EMAIL PROTECTED]]
Sent: Monday, April 29, 2002 12:46 PM
To: [EMAIL PROTECTED]
Cc: Russell Coker; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: [reiserfs-list] fsync() Performance Issue


On Mon, 2002-04-29 at 12:32, Toby Dickenson wrote:

 One thing that has occurred to me (which has not been previously
discussed as 
 far as I recall) is the possibility for using sync() instead of fsync()
if 
 you can accumulate a number of files (and therefore replace many
fsync()'s 
 with one sync() ).
 
 I can see
 
 write to file A
 write to file B
 write to file C
 sync
 
 might be faster than
 
 write to file A
 fsync A
 write to file B
 fsync B
 write to file C
 fsync C

Correct.

 
 but is it possible for it to be faster than
 
 write to file A
 write to file B
 write to file C
 fsync A
 fsync B
 fsync C

It depends on the rest of the system.  sync() goes through the big lru
list for the whole box, and fsync() goes through the private list for
just that inode.  If you've got other devices or files with dirty data,
case C that you presented will always be the fastest.  For general use,
I like this one the best, it is what the journal code is optimized for.

If files A, B, and C are the only dirty things on the whole box, a
single sync() will be slightly better, mostly due to reduced cpu time.

-chris




Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Valdis . Kletnieks

On Mon, 29 Apr 2002 19:56:59 +0200, Matthias Andree [EMAIL PROTECTED]  
said:

 Barring write cache effects, fsync() only returns after all blocks are
 on disk. While I'm not sure if and if yes, which, Linux file systems are
 affected, but for portable applications, be aware that sync() may return
 prematurely (and is allowed to!).

And in fact is the reason for the old recipe:
  # sync
  # sync
  # sync
  # reboot

On the older Vax 750-class machines, sync could return LONG before the blocks
were all flushed - the second 2 sync's were so you were busy typing for
several seconds while the disks whirred.  Failure to understand the typing
speed issue has lead at least one otherwise-clued author to recommend:
  # sync;sync;sync
  # reboot

(the distinction being obvious if you think about when the shell reads the
commands, and when it does the fork/exec for each case)

-- 
Valdis Kletnieks
Computer Systems Senior Engineer
Virginia Tech





msg05263/pgp0.pgp
Description: PGP signature


Re: [reiserfs-list] fsync() Performance Issue

2002-04-29 Thread Hans Reiser

[EMAIL PROTECTED] wrote:

On Mon, 29 Apr 2002 19:56:59 +0200, Matthias Andree [EMAIL PROTECTED] 
 said:

  

Barring write cache effects, fsync() only returns after all blocks are
on disk. While I'm not sure if and if yes, which, Linux file systems are
affected, but for portable applications, be aware that sync() may return
prematurely (and is allowed to!).



And in fact is the reason for the old recipe:
  # sync
  # sync
  # sync
  # reboot

On the older Vax 750-class machines, sync could return LONG before the blocks
were all flushed - the second 2 sync's were so you were busy typing for
several seconds while the disks whirred.  Failure to understand the typing
speed issue has lead at least one otherwise-clued author to recommend:
  # sync;sync;sync
  # reboot

(the distinction being obvious if you think about when the shell reads the
commands, and when it does the fork/exec for each case)

  

Finally I understand this.  Doing more than one sync always seemed 
mysterious to me.;-)

Thanks Matthias.

Hans