[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <p731wj31ear.fsf@bingen.suse.de>
Date: 02 Apr 2007 08:27:40 +0200
From: Andi Kleen <andi@...stfloor.org>
To: "Dave Airlie" <airlied@...il.com>
Cc: "David Miller" <davem@...emloft.net>, linux-kernel@...r.kernel.org,
dri-devel@...ts.sourceforge.net
Subject: Re: drm + 4GB RAM + swiotlb = drm craps out
"Dave Airlie" <airlied@...il.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists