From: Andi Kleen <ak@suse.de>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: [3/3] Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent on x86-64
Date: Mon, 12 Sep 2005 19:59:42 +0200 [thread overview]
Message-ID: <200509121959.43259.ak@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.58.0509121040100.3242@g5.osdl.org>
On Monday 12 September 2005 19:41, Linus Torvalds wrote:
> On Sun, 11 Sep 2005, Andi Kleen wrote:
> > Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent on
> > x86-64
> >
> > Signed-off-by: Andi Kleen <ak@suse.de>
> >
> > Index: linux/arch/x86_64/kernel/pci-gart.c
> > ===================================================================
> > --- linux.orig/arch/x86_64/kernel/pci-gart.c
> > +++ linux/arch/x86_64/kernel/pci-gart.c
> > @@ -219,6 +219,8 @@ dma_alloc_coherent(struct device *dev, s
> > /* Kludge to make it bug-to-bug compatible with i386. i386
> > uses the normal dma_mask for alloc_coherent. */
> > dma_mask &= *dev->dma_mask;
> > + if (dma_mask <= 0xffffffff)
> > + gfp |= GFP_DMA32;
>
> How can this be right?
No that's intentional. The rationale is that usually the mask is bigger
than 16MB, so you first try it in the higher zone where you already
have some chance to get the right memory, and then only
if you don't get it fall back to the "precious" zone.
The cost is very low because the allocators are fast enough.
Given for a real 0xfffff allocation it is not very likely it will
work, but most <4GB allocations are bigger than that.
I had the same algorithm previously with GFP_DMA.
> Let's say that dma_mask is 0xfffff (ie 20-bit legacy DMA). It will trigger
> the test, and set the GFP_DMA32 bit. Which can't be right.
>
> I'm going to drop the DMA32 parts of the patches, they seem to be pretty
> raw.
Please don't.
-Andi
prev parent reply other threads:[~2005-09-12 18:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-11 16:59 [3/3] Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent on x86-64 Andi Kleen
2005-09-12 17:41 ` Linus Torvalds
2005-09-12 17:59 ` Andi Kleen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200509121959.43259.ak@suse.de \
--to=ak@suse.de \
--cc=discuss@x86-64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox