From: Andi Kleen <ak@suse.de>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: torvalds@osdl.org, linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: [1/3] Add 4GB DMA32 zone
Date: Mon, 12 Sep 2005 13:22:08 +0200 [thread overview]
Message-ID: <200509121322.09138.ak@suse.de> (raw)
In-Reply-To: <1126524787.30449.56.camel@localhost.localdomain>
On Monday 12 September 2005 13:33, Alan Cox wrote:
> On Llu, 2005-09-12 at 12:42 +0200, Andi Kleen wrote:
> > (I cannot in fact remember a report of someone running especially
> > into this problem) And the cards seem to be essentially dead in the
> > market now. So it's really more a theoretical problem than a practical
> > one. [Proof of it: the current sources don't seem to handle it, so
> > it cannot be that bad ;-]
>
> Current sources don't handle DMA32, so that can't be bad either. Can we
> stick to sensible discussion, its quicker.
Well discussing broken hardware that is rarely used on 64bit systems
with enough memory doesn't seem very sensible to me.
But ok:
Even a 2GB DMA32 wouldn't magically fix it anyways.
>
> There have been various reports over time, quite a few early on when we
> had a long series of on list discussions trying to debug what appeared
> to be an iommu bug but was in fact a kernel bug.
>
> You hit it on any size AMD64 with iommu, but since most aacraid users
> are intel boxes it doesn't hurt too many, and the rest all know about
> turning the iommu off on the box (but that hurts the rest), or just run
> something else because Linux "doesn't work".
You need essentially the same code to fix it with GFP_DMA32 as with
GFP_DMA. Some bounce code that allocates low memory and does
the necessary bounces.
The only difference with GFP_DMA is that the bounce pool is smaller
Limiting everybody else just to get a bigger bounce pool on a single
broken device that isn't even shipping anymore doesn't seem like sensible
design approach to me.
>
> > That is why I essentially ignored the b44. AFAIK the driver
> > has a GFP_DMA bounce workaround anyways, so it would work
> > anyways.
>
> Usually - the DMA zone at 16MB is too small so allocations sometimes
> fail. It btw would want 1GB limits.
mempool - sleep on a waitqueue until someone frees. In fact the kernel's
normal allocator is already quite good at that so you might not even
need that.
>
> Doesn't work. The DMA area is way too small with all the users already
> and the aacraid can and does want a lot of outstanding I/O. Using a 1GB
> or 2GB boundary line hurts nobody doing "allocate me some memory below
> 4Gb" because nobody asks for .5GB chunks. A 4GB zone means we need to
> either increase the 16MB zone or add yet another one.
This is really only a problem if a significant fraction of your memory
is beyond the limit (otherwise most buffers can go directly).
And with the mempool sleep approach they will just get small queues. Yes
that will be slower, but if you want performance on boxes with a lot of memory
you should not buy broken hardware.
Basically aacraid was always broken and it is not more or not less broken
than it was before with DMA32.
-Andi
next prev parent reply other threads:[~2005-09-12 11:23 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-11 16:59 [1/3] Add 4GB DMA32 zone Andi Kleen
2005-09-12 7:44 ` [discuss] " Jan Beulich
2005-09-12 7:58 ` Andi Kleen
2005-09-12 10:28 ` Alan Cox
2005-09-12 10:42 ` Andi Kleen
2005-09-12 11:33 ` Alan Cox
2005-09-12 11:22 ` Andi Kleen [this message]
2005-09-12 12:34 ` Alan Cox
2005-09-12 12:28 ` [discuss] " Andi Kleen
2005-09-12 18:18 ` Jeff Garzik
2005-09-12 22:02 ` Bart Hartgers
2005-09-13 3:20 ` Andi Kleen
2005-09-12 19:55 ` Mark Lord
2005-09-12 12:45 ` Roman Zippel
2005-09-12 12:46 ` Andi Kleen
2005-09-12 12:50 ` Roman Zippel
2005-09-12 12:54 ` Andi Kleen
2005-09-12 13:01 ` Roman Zippel
2005-09-13 9:15 ` Roman Zippel
2005-09-13 9:47 ` [discuss] " Andi Kleen
2005-09-13 10:15 ` Andrew Morton
2005-09-13 11:32 ` Andi Kleen
2005-09-13 12:09 ` Roman Zippel
2005-09-13 23:51 ` KAMEZAWA Hiroyuki
2005-10-03 15:46 ` Coywolf Qi Hunt
-- strict thread matches above, loose matches on Subject: below --
2005-09-12 11:44 Salyzyn, Mark
2005-09-12 11:51 ` Andi Kleen
2005-09-12 12:08 Salyzyn, Mark
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=200509121322.09138.ak@suse.de \
--to=ak@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--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