Nathan Scott wrote:
Hi there,
On Wed, Sep 15, 2004 at 11:50:02AM +1000, Nathan Scott wrote:
On Tue, Sep 14, 2004 at 11:53:38AM -0500, James Foris wrote:
...
I put a drop-through printk in mm/filemap.c to report when O_DIRECT hits the
following:
/*
* If we get here for O_DIRECT writes then we must have fallen
through
* to buffered writes (block instantiation inside i_size). So
we sync
* the file data here, to try to honour O_DIRECT expectations.
*/
if (unlikely(file->f_flags & O_DIRECT) && written)
status = filemap_write_and_wait(mapping);
Hmmm... very interesting.
Could you try the patch below James? It should apply
cleanly to the 2.6.x-xfs cvs tree on oss.sgi.com, or to
Linus' current -bk tree (but that may need a little bit
of tweaking, not sure off the top of my head).
It worked against linus' current tree (2.6.9-rc2), and initial tests
look VERY good!
I am no longer seeing the marker I planted, performance no longer
drops in the original test case, and on individual single-write runs
I have seen a reported peak of 142 MB/s for a single 300K file write
(where the highest, previously, was ~86MB/s for a 150K file).
It will take a few days to get access to the high-speed RAID so that
I can test the effects out there, but this is definately the right track!
I will report what happens.
I guess the question now is what is needed to get this broadly
reviewed, tested, finalized, and (hopefully) into the mainline?
Also, where can I pick up the XFS test/validation suite that I have
seen discussed here ? (It does not seem to be packaged anywhere
on the oss.sgi.com FTP site.)
Thanks again,
Jim Foris
Let me know if the numbers are good/bad/indifferent (or
if you see any hangs etc - I really need to stare at the
locking in here for a whole lot longer).
thanks!
|