Subject: Re: about untar performance on -current
To: Chuck Silvers <chuq@chuq.com>
From: enami tsugutomo <enami@sm.sony.co.jp>
List: tech-kern
Date: 04/18/2001 12:42:49
Chuck Silvers <chuq@chuq.com> writes:

> On Sun, Apr 15, 2001 at 09:24:23AM +0900, enami tsugutomo wrote:
> > Chuck Silvers <chuq@chuq.com> writes:
> > 
> > > yes.  when the fragment is extended to a full block (perhaps due
> > > to a someone seeking a ways past EOF and writing there), we need
> > > to flush the whole block, not just the part that was previously
> > > in the file.  we could do a better job of doing this flushing
> > > only when we really need to, though.
> > 
> > Then, we need to flush top of new range also, don't we?  I.e., between
> > trunc_page(off) & ~(bsize - 1) and trunc_page(off).
> 
> that will be flushed in ffs_write(), won't it?

Ah, yes, but as a result of work around (code inside #if 1..#else).

> (actually it's trunc_page(off) & ~(bsize - 1) to round_page(off).)

ffs_write() is responsible to flush trunc_page(start of region) and
round_page(end of region).  but if full block is allocated, pages at
the front of the block need to be flushed.  So, i wrote that `... to
trunc_page(off)'.  Also, if the block is inside of existing hole, end
of block also need to be flushed (tho, currently isn't necessary
because of the work around).

Hm, is it better to flush at the end of ffs_write()?

enami.