Re: news about IDE PIO HIGHMEM bug (was: Re: 2.6.9-mm1)
From: Jeff Garzik
Date: Wed Oct 27 2004 - 11:05:49 EST
Martin J. Bligh wrote:
Bartlomiej Zolnierkiewicz wrote:
We have stuct page of the first page and a offset.
We need to obtain struct page of the current page and map it.
Opening this question to a wider audience.
struct scatterlist gives us struct page*, and an offset+length pair. The struct page* is the _starting_ page of a potentially multi-page run of data.
The question: how does one get struct page* for the second, and successive pages in a known-contiguous multi-page run, if one only knows the first page?
If it's a higher order allocation, just page+1 should be safe. If it just
happens to be contig, it might cross a discontig boundary, and not obey
that rule. Very unlikely, but possible.
Unfortunately, it's not.
The block layer just tells us "it's a contiguous run of memory", which
implies nothing really about the allocation size.
Bart and I (and others?) essentially need a "page+1" thing (for 2.4.x
too!), that won't break in the face of NUMA/etc.
Alternatively (or additionally), we may need to make sure the block
layer doesn't merge across zones or NUMA boundaries or whatnot.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/