Re: [CFT][PATCH] block_write_*_buffer rewrite

Alexander Viro (viro@math.psu.edu)
Wed, 1 Dec 1999 05:56:27 -0500 (EST)


On Wed, 1 Dec 1999, Ingo Molnar wrote:

>
> On Tue, 30 Nov 1999, Alexander Viro wrote:
>
> > Patch merges most of block_write_{partial,cont}_page and fixes a
> > couple of bad bugs in the latter. It should fix the problems with
> > write-beyond-EOF on FAT and HPFS and it cleans the code up. [...]
>
> looks good, but i think you have removed an important optimization:
> overlapping the issuing/finishing of read requests with copying memory, on
> 1k filesystems. This should not matter much on bigger boxes, but on
> smaller ones i've seen a definite advantage. So it's fine (and wanted) to

Erm... I'm not sure that it's going to be a win - could you describe a
scenario where we would write enough to make the copying sufficiently long
_and_ would hit the need to wait on read request at the last block? IOW,
what situation did you catch when testing old code? It _did_ wait on the
first read request before copying anything, so if there was a difference
it either came from waiting on the last one or from something completely
different.

> issue read requests first (the old version didnt do this), but you are
> waiting for them to finish synchronously - this should be interleaved with
> memory copies. Also there is a deadlock situation which David Miller
> noticed some time ago (i think this is still present): just try read()-ing
> a file into a freshly mmap()-ed memory area. (where the mmap-ed page is
> the same as the read() page.) Legal combination, instant stuck process.

Huh? generic_file_read() unlocks the page before calling actor() (and
causing the page-in). What's the problem with it?

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