Messages in this thread | | | Date | Mon, 2 Apr 2007 15:38:48 +1000 | From | "Dave Airlie" <> | Subject | Re: drm + 4GB RAM + swiotlb = drm craps out |
| |
> > > > On a 64-bit machine GFP_KERNEL can give me any memory... it all works > > fine on 32-bit highmem kernel as I don't get highmem... I really need > > __GFP_DMA32 memory but we don't have a generic allocator that gives > > this out that I can see.. > > __get_free_pages(..., __GFP_DMA32) on 64bit or __GFP_KERNEL or i386 > (only gives you ~900MB)
Doesn't __get_free_pages give me physically linear memory, which while nice it isn't essential for what I need, so if I can't get my full allocation I could in theory just start to fallback down the orders and calling it multiple times to actually get the amount of memory I need, this just seems overly cumbersome when what I really want is vmalloc_32 to just work correctly on 64-bit systems... (why doesn't vmalloc_32 pass __GFP_DMA32 to the allocator????)
> Not sure what you mean? __alloc_pages never bounces by itself. > The nearest you can get is __GFP_DMA/__GFP_DMA32, but these have > their own 16MB/4GB zones and don't use the swiotlb pools. And of course it > only gives you plain memory, but doesn't remap or copy anything.
Yes I want __GFP_DMA32 but I'd like it with vmalloc not with __get_free_pages and I've no great need for physically linear page allocations and as I'm after quite a large order I can see this failing ... granted with a 4GB system maybe not that quickly..
Dave. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |