Messages in this thread | | | From | "Stephen C. Tweedie" <> | Date | Thu, 11 Nov 1999 11:25:54 +0000 (GMT) | Subject | Re: kiobuf using kernel pages |
| |
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/
| |