![]() | |||||||||||||
Messages in this thread |
"Dave Airlie" <airlied@gmail.com> writes: > > 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) > > Are you expecting to be able to virtually remap these pages in > > PCI space as one huge 8MB chunk too and that's how swiotlb gets > > involved? That won't work, sorry... > > Well I feed the bus address for each page into a GART table in the GPU > and it does the linear stuff internally in the GPU memory > controller... > > I suppose I want __GFP_I_D_RATHER_DIE_THAN_BOUNCE. 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. I have some plans to unify this with swiotlb, but they're not done. -Andi - 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/ | ||||||||||||
| Last update: 2007-04-02 07:31 [from the cache] ©2003-2008 | |||||||||||||