On Mon, Nov 06, 2006 at 05:15:27PM -0600, Eric Sandeen wrote:Christoph Hellwig wrote:On Mon, Nov 06, 2006 at 03:50:02PM -0600, Eric Sandeen wrote:Well, agreed. I put 80% or more back to pre-patch state, but not all.so I would propose the following patch to make PAGE_CACHE_SIZE the default (again), and let filesystems which need something -else- do that on their own.I agree with the conclusion, but the patch is incomplete. You went down
all the way to find out what the fileystems do in this messages, so add
the hunks to override the defaults for non-standard filesystems to the
patch aswell to restore the pre-inode diet state.
:) So it's less broken with my patch than without, so at least it's
moving forward. So... Ted's patches get in w/o fixing up all the other
filesystems (left as an exercise to the patch reader) but mine can't? :)
Note that *I* wasn't the one who changed it from PAGE_CACHE_SIZE to (1
<< inode->i_blkbits). This was done by Andrew. (See below, from an
e-mail dated September 19th).
Given that Steve French was cc'ed, I assume this was done as a hack to
fix CIFS, but it was a bad idea; I agree that PAGE_CACHE_SIZE is a way
better default than (1 << inode->i_blkbits).
As far as fixing all of the other filesystems, I did *try*; I know I
screwed up with XFS, but that's because I still think the code is a
screaming horror of indirections that make it impossible to understand
what the heck is going on, and I guess I screwed up with CIFS. Some
of the changes away from "pre inode diet" state were deliberate,
though, since some filesystems had very clearly broken "optimal I/O
sizes" of 512, and one even had something incredibly bogus that was
something like 96 bytes (!) if I remember correctly.