kupdate weirdness

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Cc: <akpm@...>, <linux-fsdevel@...>
Date: Wednesday, August 1, 2007 - 4:45 pm

The following strange behavior can be observed:

1. large file is written
2. after 30 seconds, nr_dirty goes down by 1024
3. then for some time (< 30 sec) nothing happens (disk idle)
4. then nr_dirty again goes down by 1024
5. repeat from 3. until whole file is written

So basically a 4Mbyte chunk of the file is written every 30 seconds.
I'm quite sure this is not the intended behavior.

The reason seems to be that __sync_single_inode() will move the
partially written inode from s_io onto s_dirty, and sync_sb_inode()
will not splice it back onto s_io until the rest of the inodes on s_io
has been processed.

Since there will probably be a recently dirtied inode on s_io, this
will take some of time, but always less than 30 sec.

I don't know what's the easiest solution.

Any ideas?

Miklos
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
kupdate weirdness, Miklos Szeredi, (Wed Aug 1, 4:45 pm)
Re: kupdate weirdness, David Chinner, (Wed Aug 1, 9:53 pm)
Re: kupdate weirdness, Andrew Morton, (Wed Aug 1, 5:14 pm)
Re: kupdate weirdness, Miklos Szeredi, (Thu Aug 2, 11:52 am)
Re: kupdate weirdness, Andrew Morton, (Thu Aug 2, 3:18 pm)
Re: kupdate weirdness, Miklos Szeredi, (Thu Aug 2, 3:35 pm)