Re: [patch] `cp /dev/zero /tmp' (patch against 2.2.9)

Stephen C. Tweedie (sct@redhat.com)
Sat, 19 Jun 1999 00:27:11 +0100 (BST)


Hi,

On Fri, 18 Jun 1999 11:17:38 -0700 (PDT), Linus Torvalds
<torvalds@transmeta.com> said:

> On Fri, 18 Jun 1999, Stephen C. Tweedie wrote:
>>
>> I'll merge in the new fsync code. I'm not sure I'll bother using the
>> inode page list: it doesn't deal with metadata, so we still need a
>> separate per-inode dirty buffer list anyway.

> Please take a look at pre-2.3.7-7: I did the fsync() stuff for the page
> cache, and I'm pretty confident that we don't even need a per-inode dirty
> list with it.

Yes, we do. The penalty of having to walk the entire inode indirection
tree to find dirty indirection buffers is still there otherwise, and
that is really expensive for large files (although not so expensive as
it used to be when we needed to do a buffer lookup for each entry). The
per-inode dirty buffer list eliminates that scan entirely, and allows us
to unify the O_SYNC and fdatasync code.

The other thing I'll fix is the wait-on-page ordering: we want to wait
in the reverse order that we submit the IOs in, to try to minimise the
number of unnecessary wakeups we encounter.

--Stephen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/