Re: [bigmem-patch] 4GB with Linux on IA32

Andrea Arcangeli
1999-08-26T16:27:51Z

On Tue, 17 Aug 1999, Alan Cox wrote:

>of bus addressses of vmalloc pages. I don't think the 4Gig patch breaks it
>at all. In the ideal world virt_to_bus() would work on vmalloc pages. It

Yes, the bigmem patch doesn't break bttv.

bttv alloc the DMA-pool via vmalloc and with the bigmem patch applyed
vmalloc prefere the bigmem pages so the DMA-pool will be always alloced
in bigmem memory.

But using vmalloc all bigmem pages will have a valid virt-to-phys
translation. (Only GFP may return a pointer without a valid virt-to-phys
translation if __GFP_BIGMEM is been specifyed in the gfp_mask.)

So the kernel can also copy-from/to-user the DMA pool using the vmalloc
addresses since it's a _valid_ address.

Via mmap the vmalloced pages will be remapped to userspace memory and
that's fine as well.

Andrea