alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>
To: Daniel Mack <daniel-rDUAYElUppE@public.gmane.org>
Cc: Alan Stern
	<stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>,
	Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>,
	Pedro Ribeiro <pedrib-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	Greg KH <gregkh-l3A5Bk7waGM@public.gmane.org>,
	alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: USB transfer_buffer allocations on 64bit systems
Date: Mon, 12 Apr 2010 19:22:33 +0200	[thread overview]
Message-ID: <20100412172233.GR18855@one.firstfloor.org> (raw)
In-Reply-To: <20100412171507.GB30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>

On Mon, Apr 12, 2010 at 07:15:07PM +0200, Daniel Mack wrote:
> On Mon, Apr 12, 2010 at 12:57:16PM -0400, Alan Stern wrote:
> > On Mon, 12 Apr 2010, Andi Kleen wrote:
> > > Hmm, thanks. But things must still go wrong somewhere, otherwise
> > > the GFP_DMA32 wouldn't be needed?
> > 
> > Indeed, something must go wrong somewhere.  Since Daniel's patch fixed
> > the problem by changing the buffer from a streaming mapping to a
> > coherent mapping, it's logical to assume that bad DMA addresses have
> > something to do with it.  But we don't really know for certain.
> 
> Given that - at least for non-64-aware host controllers - we want memory
> <4GB anyway for USB transfers to avoid DMA bouncing buffers, maybe we
> should just do that and fix the problem at this level? I already started
> to implement usb_[mz]alloc() and use it in some USB drivers.

If the area is not mapped correctly it will fail in other situations,
e.g. with an IOMMU active or in virtualized setups. So the bug
has to be eventually tracked down.

> 
> But even after all collected wisdom about memory management in this
> thread, I'm still uncertain of how to get suitable memory. Using
> dma_alloc_coherent() seems overdone as that type of memory is not
> necessarily needed and might be a costly good on some platforms. And as
> fas as I understand, kmalloc(GFP_DMA) does not avoid memory >4GB.

It does actually, but it only has 16MB to play with. Don't use it.
If anything use __get_free_pages(GFP_DMA32), but it's a x86-64 
specific code.

> Can anyone explain which is the right way to go?

The right thing would be to define a proper interface for it.

I had an attempt for it a couple of years ago with the mask allocator, 
but it didn't make it into the tree.

-Andi
-- 
ak-VuQAYsv1563Yd54FQh9/CA@public.gmane.org -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2010-04-12 17:22 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07  9:06 USB transfer_buffer allocations on 64bit systems Daniel Mack
     [not found] ` <p2g581ef6d61004070220z1153d40ez955b356e01220848@mail.gmail.com>
2010-04-07  9:26   ` USB HID gadget driver (was: Re: USB transfer_buffer allocations on 64bit systems) Daniel Mack
2010-04-07 14:59 ` USB transfer_buffer allocations on 64bit systems Alan Stern
2010-04-07 15:11   ` Daniel Mack
2010-04-07 15:31     ` Greg KH
2010-04-07 15:35       ` Daniel Mack
2010-04-07 15:51         ` Greg KH
     [not found]           ` <20100407155122.GA13974-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2010-04-07 16:04             ` Alan Stern
2010-04-08  6:09         ` Oliver Neukum
     [not found]           ` <201004080809.11756.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2010-04-08 11:07             ` Daniel Mack
2010-04-07 15:55       ` Alan Stern
2010-04-07 16:16         ` Daniel Mack
2010-04-07 16:47           ` Alan Stern
2010-04-07 17:55           ` Takashi Iwai
2010-04-07 17:59             ` Daniel Mack
2010-04-07 18:06               ` Takashi Iwai
2010-04-07 19:13             ` Alan Stern
     [not found]               ` <Pine.LNX.4.44L0.1004071452560.5760-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-07 23:59                 ` Robert Hancock
2010-04-12 11:17                 ` [PATCH] USB: rename usb_buffer_alloc() and usb_buffer_free() Daniel Mack
     [not found]                   ` <1271071045-3112-1-git-send-email-daniel-rDUAYElUppE@public.gmane.org>
2010-04-13 18:16                     ` Daniel Mack
     [not found]                       ` <20100413181631.GT30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-13 19:27                         ` Alan Stern
2010-04-13 20:26                           ` Greg KH
2010-04-13 21:47                             ` Daniel Mack
2010-04-08  0:33               ` USB transfer_buffer allocations on 64bit systems Greg KH
2010-04-09  0:01                 ` Robert Hancock
     [not found]                   ` <4BBE6E57.6020600-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-04-09 16:50                     ` Sarah Sharp
2010-04-09 23:38                       ` Robert Hancock
2010-04-10  8:34                         ` Daniel Mack
2010-04-10 17:02                           ` [alsa-devel] " Robert Hancock
2010-04-12 18:56                             ` Sarah Sharp
2010-04-12 20:39                               ` Robert Hancock
2010-04-12 20:58                                 ` Sarah Sharp
2010-04-07 17:52         ` Takashi Iwai
2010-04-07 15:46     ` Alan Stern
2010-04-08  6:12       ` Oliver Neukum
     [not found]         ` <201004080812.04419.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2010-04-08 16:59           ` Alan Stern
2010-04-08 21:24             ` Oliver Neukum
2010-04-08 22:20               ` Alan Stern
2010-04-09  6:04                 ` Oliver Neukum
     [not found]                   ` <201004090804.36213.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2010-04-09 14:41                     ` Alan Stern
     [not found]                       ` <Pine.LNX.4.44L0.1004091033150.1852-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-09 14:50                         ` Oliver Neukum
     [not found]                           ` <201004091650.31488.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2010-04-09 15:15                             ` Alan Stern
     [not found]                               ` <Pine.LNX.4.44L0.1004091114500.1852-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-09 20:51                                 ` Oliver Neukum
2010-04-09 21:21                                   ` Alan Stern
     [not found]   ` <Pine.LNX.4.44L0.1004071036060.1779-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-07 16:54     ` Oliver Neukum
     [not found]       ` <201004071854.55530.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2010-04-07 17:00         ` Daniel Mack
2010-04-07 23:55     ` Robert Hancock
     [not found]       ` <4BBD1B6F.3000205-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-04-08  2:10         ` Alan Stern
2010-04-08  7:30           ` Daniel Mack
     [not found]             ` <20100408073041.GO30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-08 16:57               ` Alan Stern
2010-04-08 17:17                 ` Pedro Ribeiro
     [not found]                 ` <Pine.LNX.4.44L0.1004081245330.1720-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-08 23:13                   ` Pedro Ribeiro
2010-04-09 16:01                     ` Alan Stern
2010-04-09 18:09                       ` Daniel Mack
     [not found]                         ` <20100409180942.GK30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-09 18:19                           ` Pedro Ribeiro
     [not found]                             ` <w2r74fd948d1004091119j9f33d8a6kc1824d9243abf38b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-09 19:34                               ` Alan Stern
2010-04-09 20:14                                 ` Daniel Mack
     [not found]                                 ` <Pine.LNX.4.44L0.1004091529240.1852-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-09 20:25                                   ` [LKML] " Konrad Rzeszutek Wilk
     [not found]                                     ` <20100409202533.GA8983-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org>
2010-04-09 21:23                                       ` Alan Stern
2010-04-09 22:11                                         ` Robert Hancock
2010-04-12 10:48                                           ` Daniel Mack
2010-04-12 12:06                                             ` Pedro Ribeiro
2010-04-10 12:49                             ` Daniel Mack
     [not found]                               ` <20100410124912.GP30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-10 13:21                                 ` Pedro Ribeiro
2010-04-12  8:59   ` Andi Kleen
2010-04-12 11:14     ` Daniel Mack
     [not found]       ` <20100412111439.GU30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-12 11:53         ` Andi Kleen
2010-04-12 12:11           ` Pedro Ribeiro
     [not found]             ` <q2z74fd948d1004120511hebf19eaauc41ee9ed25dea19e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-12 12:12               ` Andi Kleen
2010-04-12 12:32                 ` Daniel Mack
2010-04-12 12:47                   ` Andi Kleen
2010-04-12 12:54                     ` Daniel Mack
2010-04-12 15:43                       ` Andi Kleen
     [not found]                         ` <20100412154323.GP18855-qrUzlfsMFqo/4alezvVtWx2eb7JE58TQ@public.gmane.org>
2010-04-12 16:17                           ` Alan Stern
2010-04-12 16:29                             ` Andi Kleen
2010-04-12 16:57                               ` Alan Stern
2010-04-12 17:15                                 ` Daniel Mack
     [not found]                                   ` <20100412171507.GB30801-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-12 17:22                                     ` Andi Kleen [this message]
2010-04-12 17:56                                       ` Daniel Mack
2010-04-12 17:52                                     ` [LKML] " Konrad Rzeszutek Wilk
2010-04-13 18:22                                 ` Daniel Mack
     [not found]                                   ` <20100413182233.GR30807-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-13 23:46                                     ` Pedro Ribeiro
2010-04-14 10:09                                       ` Daniel Mack
2010-04-14 10:47                                         ` Pedro Ribeiro
2010-04-14 11:02                                           ` Pedro Ribeiro
2010-04-14 13:18                                           ` [LKML] " Konrad Rzeszutek Wilk
     [not found]                                           ` <t2w74fd948d1004140347k3447bffapb73856eacddfde55-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-14 14:08                                             ` Alan Stern
2010-04-14 16:36                                               ` Daniel Mack
     [not found]                                                 ` <20100414163637.GV30807-ahpEBR4enfnCULTFXS99ULNAH6kLmebB@public.gmane.org>
2010-04-14 17:21                                                   ` Pedro Ribeiro
2010-04-15  7:35                                                     ` Daniel Mack
     [not found] <g2h74fd948d1004141820ladc1941eo732d059dd678df0a@mail.gmail.com>
     [not found] ` <Pine.LNX.4.44L0.1004151114490.1562-100000@iolanthe.rowland.org>
     [not found]   ` <t2r74fd948d1004191716l49dedc2p25a27da39bcc614a@mail.gmail.com>
2010-05-07  7:48     ` Daniel Mack
2010-05-07  9:47       ` Clemens Ladisch
2010-05-07 10:24         ` Daniel Mack
2010-05-07 14:51           ` [alsa-devel] " Alan Stern
2010-05-10  2:50             ` FUJITA Tomonori
2010-05-10  9:21               ` David Woodhouse
2010-05-07 11:42         ` [alsa-devel] " Oliver Neukum
2010-05-07 11:47           ` Oliver Neukum
2010-05-07 11:58             ` Daniel Mack

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=20100412172233.GR18855@one.firstfloor.org \
    --to=andi-vw/nlti1exurpaaqcnn02g@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
    --cc=daniel-rDUAYElUppE@public.gmane.org \
    --cc=gregkh-l3A5Bk7waGM@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pedrib-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.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;
as well as URLs for NNTP newsgroup(s).