This changes how we convert delalloc pages into real pages, the page cleaner
now scans the inactive_dirty list looking for candidates rather than the
page table. The kiobuf and buffer_head paths now behave in similar manners,
they both do clustered writes on delalloc conversion. This means that the
kiocluster mount option is not really needed, for now it will still be
parsed and interpreted as the same as the kio option, clustering is
independent of kiobufs now.
truncate_inode_pages is reverted to its original argument list, the toss/no
toss option is removed. This was a) not implemented correctly, and b) not
actually used anymore.
Finally, the pagebuf_flush function was cleaned up to do more optimal
memory allocations, and less dropping and obtaining of spinlocks.
There still remains more performance work to be done on how we trigger
the page cleaner.
Date: Mon Feb 5 11:29:03 PST 2001
Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:84918a
linux/mm/memory.c - 1.44
- revert truncate_inode_pages call to its original arguments
linux/mm/filemap.c - 1.66
- call toss_page instead of convertpage when a delalloc page is found in
the truncate_inode_pages path. Revert truncate_inode_pages to it's
original
specification.
linux/include/linux/mm.h - 1.47
- revert truncate_inode_pages call to its original arguments
linux/include/linux/fs.h - 1.78
- remove MS_KIOCLUSTER and IS_KIOCLUSTER, rename the converpage address
space method to toss_page
linux/fs/inode.c - 1.36
- Remove extra parameter from truncate_inode_pages, go back to the
original Linux version.
linux/fs/xfs/linux/xfs_lrw.c - 1.75
- revert truncate_inode_pages call to its original arguments
linux/fs/xfs/linux/xfs_super.c - 1.108
- revert truncate_inode_pages call to its original arguments. Make the
kiocluster
mount option the same as the kio option for now, clustering happens
all the
time now.
linux/fs/xfs/linux/xfs_iops.c - 1.93
- Change the convertpage method to a toss_page method.
linux/include/linux/page_buf.h - 1.72
- replace pagebuf_convert_page with pagebuf_toss_page
linux/fs/pagebuf/page_buf.c - 1.51
- Change to page locking for doing dealloc clustered writes using buffer
heads.
linux/fs/pagebuf/page_buf_io.c - 1.49
- Make the pagebuf cleaner operate by scanning the inactive dirty list
of pages rather than the page table. This makes the page cleaner more
deterministic. Change clustering code to operate even if we are not
using kiobufs for the I/O path. Change the pagebuf convert function
into
a pagebuf_toss_page function which removes delalloc state from a page.
Cleanup the pagebuf_flush code to be more efficient.
|