Re: kiobuf using kernel pages

Stephen C. Tweedie (sct@redhat.com)
Thu, 11 Nov 1999 11:25:54 +0000 (GMT)


Hi,

On Thu, 11 Nov 1999 13:24:32 +0100 (CET), Ingo Molnar
<mingo@chiara.csoma.elte.hu> said:

>> SGI's code added support for other address spaces in kiobufs. Either
>> way, the addresses you pass to IO functions should be kernel virtual
>> addresses anyway if you are passing kiobufs.

> by 'kernel virtual addresses' you do not mean the vmalloc() area
> exclusively, correct?

No, they should basically be __va(physical page address). The kiobuf
tracks a table of "struct page *" to allow us to address memory beyond
4G too.

> Also, in my pagecache-in-highmem patches i've already got rid of the
> notion of storing virtual addresses in kiobufs, now it's only a 'struct
> page *' array instead of a virtual-address array. (will send it to you in
> a minute so you can see what i mean and we can sync up)

Wrong move. You need the VA in the kiobuf in order to be able to map
things beyond the end of memory -- think of mapping a PCI video
framebuffer in a machine with less than 4G of memory. You don't have a
struct page * to point to those addresses.

In order to be generic memory containers, kiobufs need both. There will
be some things you can't do unless you have the right type of page, but
the kiobuf should be able to contain any type.

--Stephen

-
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/