public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Roland Dreier <roland@topspin.com>
Cc: "David S. Miller" <davem@redhat.com>,
	benh@kernel.crashing.org, linux-kernel@vger.kernel.org
Subject: Re: PCI DMA to small buffers on cache-incoherent arch
Date: Wed, 12 Jun 2002 12:13:08 -0700	[thread overview]
Message-ID: <3D079D44.4000701@pacbell.net> (raw)
In-Reply-To: <20020611.202553.28822742.davem@redhat.com> <20020611173347.21348@smtp.adsl.oleane.com> <20020612.024224.60294929.davem@redhat.com> <3D075739.7010506@pacbell.net> <52zny049r7.fsf@topspin.com>

> Let's go back to the beginning of this discussion since I think we're
> losing sight of the original problem.

I think actually a couple were unearthed, but you're right to focus.


>  In general I certainly support
> the idea of making the DMA mapping stuff device generic instead of
> tied to PCI.  

PCI was a good place to start (focus ... :) but clearly it shouldn't
be the only bus architecture with such support.  Note that there are
actually two related approaches in the DMA-mapping.txt APIs ... one is
DMA mapping, the other is "consistent memory".  Both should be made
generic rather than PCI-specific, not just mapping APIs.


> However, this discussion started when I fixed some problems I was
> having with USB on my IBM PowerPC 440GP system (which is not cache
> coherent).  

... which basically led to discussion of options I summarized a while
back as (a) expose the issues to drivers via macros, or (b) expose
them through some other API.

And DaveM wanted to focus on (b) options that involve exposing
consistent memory to drivers as buffers (sized in multiples of
cachelines, where that matters) rather than DMA-mapping them.

Based on the discussion, I think the answer for now is to go with
the (b) variant you had originally started with, using kmalloc for
the buffers.  The __dma_buffer style macro didn't seem popular;
though I agree that it's not clear kmalloc() really solves it
today.  (Given DaveM's SPARC example, the minimum size value it
returns would need to be 128 bytes ... which clearly isn't so.)


> The current USB driver design seems pretty reasonable: only the HCD
> drivers need to know about DMA mappings, and other USB drivers just
> pass buffer addresses.  I don't think you would get much support for
> forcing every driver to handle its own DMA mapping.

Me either.  But I suspect that it'd be good to have that as an option;
maybe just add a transfer_dma field to the URB, and have the HCD use
that, instead of creating a mapping, when transfer_buffer is null.
That'd certainly be a better approach for supporting sglist in the
usb-storage code than the alternatives I've heard so far.


> I would like to see both dev_map_xxx etc. and something like
> __dma_buffer go into the kernel.  I think they both have their uses.

Got Patch?  Actually, I know you do, I shouldn't ask.  :)

- Dave





  reply	other threads:[~2002-06-12 19:11 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-11  5:31 PCI DMA to small buffers on cache-incoherent arch David Brownell
2002-06-11  5:44 ` David S. Miller
2002-06-11 15:12   ` David Brownell
2002-06-11 15:44     ` Oliver Neukum
2002-06-12  3:25     ` David S. Miller
2002-06-11 17:33       ` Benjamin Herrenschmidt
2002-06-12  9:42         ` David S. Miller
2002-06-12 14:14           ` David Brownell
2002-06-12 15:00             ` Benjamin Herrenschmidt
2002-06-12 18:44             ` Roland Dreier
2002-06-12 19:13               ` David Brownell [this message]
2002-06-12 19:58                 ` Oliver Neukum
2002-06-12 22:51                   ` David S. Miller
2002-06-12 23:17                     ` Oliver Neukum
2002-06-13  4:57                   ` David Brownell
2002-06-12 22:46                 ` David S. Miller
2002-06-13  5:13                   ` David Brownell
2002-06-13  9:38                     ` David S. Miller
2002-06-12 22:50                 ` David S. Miller
2002-06-13  0:23                 ` [PATCH] 2.4 add __dma_buffer alignment macro Roland Dreier
2002-06-13  1:07                   ` David S. Miller
2002-06-13  1:19                     ` Roland Dreier
2002-06-12  6:25       ` PCI DMA to small buffers on cache-incoherent arch David Brownell
2002-06-12  6:24         ` David S. Miller
2002-06-12  7:06           ` David Brownell
2002-06-12  9:22             ` David S. Miller
  -- strict thread matches above, loose matches on Subject: below --
2002-06-08 20:38 Roland Dreier
2002-06-08 13:58 ` Anton Blanchard
2002-06-09  0:52   ` Roland Dreier
2002-06-08 23:03 ` David S. Miller
2002-06-09  0:40   ` Roland Dreier
2002-06-09  0:53     ` David S. Miller
2002-06-09  1:26       ` Roland Dreier
2002-06-09  5:29         ` David S. Miller
2002-06-09  6:16           ` Roland Dreier
2002-06-10 16:03             ` Roland Dreier
2002-06-11 14:04               ` David Woodhouse
2002-06-09  6:45           ` Oliver Neukum
2002-06-10  4:24             ` David S. Miller
2002-06-10 10:00               ` Oliver Neukum
2002-06-10 10:24                 ` David S. Miller
2002-06-09  9:51           ` Paul Mackerras
2002-06-09 10:54             ` Benjamin Herrenschmidt
2002-06-10  4:27             ` David S. Miller
2002-06-10 15:59               ` Roland Dreier
2002-06-10 17:03                 ` Tom Rini
2002-06-10 17:22                   ` Oliver Neukum
2002-06-10 17:29                     ` Tom Rini
2002-06-10 17:39                       ` Oliver Neukum
2002-06-10 19:03                       ` Roland Dreier
2002-06-10 19:14                         ` Tom Rini
2002-06-10 19:21                           ` Roland Dreier
2002-06-10 19:26                             ` Tom Rini
2002-06-10 17:57                     ` Russell King
2002-06-10 17:28                   ` Roland Dreier
2002-06-10 18:07               ` William Jhun
2002-06-10 18:29                 ` William Jhun
2002-06-10 18:33                 ` Mark Zealey
2002-06-10 18:44                   ` Oliver Neukum
2002-06-11  3:10                 ` David S. Miller
2002-06-11  4:04                   ` Roland Dreier
2002-06-11  4:16                     ` Brad Hards
2002-06-11  4:24                       ` Roland Dreier
2002-06-11  4:24                         ` David S. Miller
2002-06-11  4:21                     ` David S. Miller
2002-06-11  4:39                       ` Roland Dreier
2002-06-11  4:38                         ` David S. Miller
2002-06-11  6:23                           ` Oliver Neukum
2002-06-11  6:38                             ` David S. Miller
2002-06-11  7:38                               ` Oliver Neukum
2002-06-11  7:36                                 ` David S. Miller
2002-06-11  7:43                                   ` David S. Miller
2002-06-11  8:07                                     ` Oliver Neukum
2002-06-11  8:15                                       ` David S. Miller
2002-06-11 12:06                                         ` Oliver Neukum
2002-06-11 12:04                                           ` David S. Miller
2002-06-11 14:23                                             ` Oliver Neukum
2002-06-14  4:14                                               ` David S. Miller
2002-06-11 18:26                                             ` Roland Dreier
2002-06-11 17:29                                               ` Benjamin Herrenschmidt
2002-06-12 12:02                                                 ` Oliver Neukum
2002-06-11 20:06                                                   ` Benjamin Herrenschmidt
2002-06-12 12:02                                                   ` David S. Miller
2002-06-11 23:00                                               ` Thunder from the hill
2002-06-11 23:56                                                 ` Roland Dreier
2002-06-12  0:09                                                   ` Thunder from the hill
2002-06-11 15:57                                     ` William Jhun
2002-06-12  9:06                                     ` Pavel Machek
2002-06-12 20:16                                       ` David S. Miller
2002-06-12 11:47                 ` David S. Miller
2002-06-12 12:08                   ` Oliver Neukum
2002-06-14  4:41                     ` David S. Miller
2002-06-12 16:09                   ` William Jhun
2002-06-09  1:30   ` Albert D. Cahalan
2002-06-09  5:29     ` David S. Miller
2002-06-09  6:33       ` Albert D. Cahalan
2002-06-09  6:50         ` Oliver Neukum
2002-06-09  6:57           ` Albert D. Cahalan
2002-06-09  7:15             ` Oliver Neukum
2002-06-09  8:48         ` Russell King
2002-06-09 15:42           ` Albert D. Cahalan
2002-06-09 23:26           ` Oliver Neukum

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=3D079D44.4000701@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=benh@kernel.crashing.org \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roland@topspin.com \
    /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