All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] dmaengine redux
@ 2008-11-14 21:34 Dan Williams
  2008-11-14 21:34 ` [PATCH 01/13] async_tx, dmaengine: document channel allocation and api rework Dan Williams
                   ` (13 more replies)
  0 siblings, 14 replies; 55+ messages in thread
From: Dan Williams @ 2008-11-14 21:34 UTC (permalink / raw)
  To: linux-kernel, netdev
  Cc: maciej.sosnowski, hskinnemoen, g.liakhovetski, nicolas.ferre

The dmaengine subsystem collects and advertises dma channels for two classes
of users in the kernel, memory-to-memory offload and traditional
device-to-memory DMA.  The original design was driven by the memory-to-memory
case and is starting to show its limitations now that more device-to-memory
DMA users are being planned.  The primary difference between the two classes
is that memory-to-memory offload is very amenable to channel sharing and is
tolerant of dynamic channel changes.  Compare this to the device-to-memory
case where a channel must be dedicated to a device and may have
platform-specific reasons why it cannot talk to a different device.

This rework allows channels to be targeted to a public (mem-to-mem) pool or be
reserved for an exclusive private (dev-to-mem) allocation.  See [PATCH 1/13]
for documentation of the changes.  A nice side effect of the rework is:

 24 files changed, 679 insertions(+), 1108 deletions(-)

All review welcomed, especially around the dma_slave changes, or performance
impacts of dma_find_channel.

These patches are currently on async_tx.git/upstream, and barring any
brown-paper-bag issues will move to linux-next via async_tx.git/next.

  git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git upstream

---
Dan Williams (13):
      dmaengine: kill enum dma_state_client
      dmaengine: remove 'bigref' infrastructure
      dmaengine: kill struct dma_client and supporting infrastructure
      dmaengine: replace dma_async_client_register with dmaengine_get
      atmel-mci: convert to dma_request_channel and down-level dma_slave
      dmatest: convert to dma_request_channel
      dmaengine: introduce dma_request_channel and private channels
      net_dma: convert to dma_find_channel
      dmaengine: provide a common 'issue_pending_all' implementation
      dmaengine: centralize channel allocation, introduce dma_find_channel
      dmaengine: up-level reference counting to the module level
      dmaengine: remove dependency on async_tx
      async_tx, dmaengine: document channel allocation and api rework

 Documentation/crypto/async-tx-api.txt |  135 +++----
 Documentation/dmaengine.txt           |    1 
 arch/avr32/include/asm/atmel-mci.h    |    6 
 arch/avr32/mach-at32ap/at32ap700x.c   |   15 -
 crypto/async_tx/async_tx.c            |  350 ------------------
 drivers/dma/Kconfig                   |    2 
 drivers/dma/dmaengine.c               |  637 +++++++++++++++++++++++----------
 drivers/dma/dmatest.c                 |  111 ++----
 drivers/dma/dw_dmac.c                 |   28 -
 drivers/dma/fsldma.c                  |    3 
 drivers/dma/ioat_dma.c                |    5 
 drivers/dma/iop-adma.c                |   11 -
 drivers/dma/mv_xor.c                  |   11 -
 drivers/mmc/host/atmel-mci.c          |  103 +----
 include/linux/async_tx.h              |   17 -
 include/linux/dmaengine.h             |  148 ++------
 include/linux/dw_dmac.h               |   31 +-
 include/linux/netdevice.h             |    3 
 include/net/netdma.h                  |   11 -
 net/core/dev.c                        |  148 --------
 net/ipv4/tcp.c                        |    5 
 net/ipv4/tcp_input.c                  |    2 
 net/ipv4/tcp_ipv4.c                   |    2 
 net/ipv6/tcp_ipv6.c                   |    2 
 24 files changed, 679 insertions(+), 1108 deletions(-)
 create mode 100644 Documentation/dmaengine.txt

-- 

Regards,
Dan

^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2009-02-06 16:58 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-14 21:34 [PATCH 00/13] dmaengine redux Dan Williams
2008-11-14 21:34 ` [PATCH 01/13] async_tx, dmaengine: document channel allocation and api rework Dan Williams
2008-11-14 21:34 ` [PATCH 02/13] dmaengine: remove dependency on async_tx Dan Williams
2008-11-15  6:02   ` Andrew Morton
2008-11-17 23:44     ` Dan Williams
2008-11-14 21:34 ` [PATCH 03/13] dmaengine: up-level reference counting to the module level Dan Williams
2008-11-15  6:08   ` Andrew Morton
2008-11-18  3:42     ` Dan Williams
2008-12-04 16:56   ` Guennadi Liakhovetski
2008-12-04 18:51     ` Dan Williams
2008-12-04 19:28       ` Guennadi Liakhovetski
2008-12-08 22:39         ` Dan Williams
2008-12-12 14:28   ` Sosnowski, Maciej
2008-12-15 22:12     ` Dan Williams
2008-12-18 14:26       ` Sosnowski, Maciej
2008-11-14 21:34 ` [PATCH 04/13] dmaengine: centralize channel allocation, introduce dma_find_channel Dan Williams
2008-11-15  6:14   ` Andrew Morton
2008-11-18  5:59     ` Dan Williams
2008-11-14 21:34 ` [PATCH 05/13] dmaengine: provide a common 'issue_pending_all' implementation Dan Williams
2008-11-14 21:34 ` [PATCH 06/13] net_dma: convert to dma_find_channel Dan Williams
2008-11-14 21:34 ` [PATCH 07/13] dmaengine: introduce dma_request_channel and private channels Dan Williams
2008-12-02 15:52   ` Guennadi Liakhovetski
2008-12-02 17:16     ` Dan Williams
2008-12-02 17:27       ` Guennadi Liakhovetski
2008-12-02 19:10         ` Dan Williams
2008-12-02 21:28           ` Guennadi Liakhovetski
2009-01-30 17:03       ` Atsushi Nemoto
2009-01-30 23:13         ` Dan Williams
2009-01-30 23:13           ` Dan Williams
2009-01-30 23:27           ` Guennadi Liakhovetski
2009-01-30 23:27             ` Guennadi Liakhovetski
2009-01-31 12:18             ` Atsushi Nemoto
2008-12-02 17:26     ` Nicolas Ferre
2008-12-12 14:29   ` Sosnowski, Maciej
2008-12-15 23:55     ` Dan Williams
2008-12-18 14:33       ` Sosnowski, Maciej
2008-12-18 17:27         ` Dan Williams
2009-02-06 16:58   ` Atsushi Nemoto
2008-11-14 21:34 ` [PATCH 08/13] dmatest: convert to dma_request_channel Dan Williams
2008-11-15  6:17   ` Andrew Morton
2008-11-18 18:24     ` Dan Williams
2008-11-18 20:58       ` Andrew Morton
2008-11-18 22:19         ` Dan Williams
2008-11-14 21:35 ` [PATCH 09/13] atmel-mci: convert to dma_request_channel and down-level dma_slave Dan Williams
2009-01-30 16:40   ` Atsushi Nemoto
2009-01-30 23:02     ` Dan Williams
2009-01-30 23:02       ` Dan Williams
2008-11-14 21:35 ` [PATCH 10/13] dmaengine: replace dma_async_client_register with dmaengine_get Dan Williams
2008-11-14 21:35 ` [PATCH 11/13] dmaengine: kill struct dma_client and supporting infrastructure Dan Williams
2008-12-12 14:29   ` Sosnowski, Maciej
2008-12-16  0:09     ` Dan Williams
2008-12-18 14:34       ` Sosnowski, Maciej
2008-11-14 21:35 ` [PATCH 12/13] dmaengine: remove 'bigref' infrastructure Dan Williams
2008-11-14 21:35 ` [PATCH 13/13] dmaengine: kill enum dma_state_client Dan Williams
2008-12-12 14:27 ` [PATCH 00/13] dmaengine redux Sosnowski, Maciej

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.