Meta-data buffers in XFS always use locking pagebufs, we never access
the data, or do I/O on the data without a lock on the pagebuf. The
presence of the pagebuf also prevents the pages it references from
going away.
We can take advantage of this to avoid locking the individual pages
before doing a write out to disk, the locking is still being used
on reads.
Also change PAGE_ references in pagebuf to PAGE_CACHE_
Date: Mon Jun 26 14:21:14 PDT 2000
Workarea: jen.cray.com:/src/lord/xfs-linux.2.4.0-test1
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.0-test1-xfs
Modid: 2.4.0-test1-xfs:slinx:65193a
linux/fs/pagebuf/page_buf.c - 1.6
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/pagebuf/page_buf.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h
1. Move from using PAGE_SIZE & friends to PAGE_CACHE_SIZE and friends
for doing size calculations on things allocated from the page cache,
the long term intent seems to be to allow these numbers to be different.
2. Change the kiobuf interface in pagebuf to not lock the pages if the pagebuf
is using locking. This only affects XFS metadata buffers at the moment, this
gives us a 10 to 40 percent speedup on some tests.
linux/fs/pagebuf/page_buf_io.c - 1.5
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/pagebuf/page_buf_io.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h
Move from using PAGE_SIZE & friends to PAGE_CACHE_SIZE and friends
for doing size calculations on things allocated from the page cache,
the long term intent seems to be to allow these numbers to be different.
|