Re: [patch 21/21] writeback correctness and peformance fixes

Daniel Phillips (phillips@arcor.de)
Sun, 11 Aug 2002 11:26:08 +0200


On Sunday 11 August 2002 09:40, Andrew Morton wrote:
> Incidentally, the occurrence of a locked-and-dirty buffer in
> block_write_full_page() is fairly rare: normally the collision avoidance
> happens at the address_space level, via PageWriteback. But some
> mappings (blockdevs, ext3 files, etc) have their dirty buffers written
> out via submit_bh(). It is these buffers which can stall
> block_write_full_page().
>
> This wart will be pretty intrusive to fix. ext3 needs to become fully
> page-based (ugh. It's a block-based journalling filesystem, and pages
> are unnatural).

Ah, so you have finally seen the light. This is the answer to the question:
"why do we need soft page size, with subpages?" At least it's one of the
answers, other answers include: "finally getting rid of buffers", "cleaning
up the page+buffer state mess" and "eliminating the locking madness when
blocks are smaller than pages".

> blockdev mappings are still written out by buffers
> because that's how filesystems use them. Putting _all_ metadata
> (indirects, inodes, superblocks, etc) into standalone address_spaces
> would fix that up.

You'll like that idea until you try it. Think about what happens when you
need to lock more than one subpage block at the same time, with page locks.

At the rate things are going I can see actually doing the subpage thing in
2.7, and yes, you're right to be skeptical until you see working code.

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