All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH char-misc-next v3 0/8] Enable dma driver for MIC X100 Coprocessors
@ 2014-07-11 21:04 Sudeep Dutt
  2014-07-11 21:04 ` [PATCH char-misc-next v3 1/8] misc: mic: Add mic bus and dma driver documentation Sudeep Dutt
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Sudeep Dutt @ 2014-07-11 21:04 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Dan Williams
  Cc: Siva Yerramreddy, Ashutosh Dixit, Nikhil Rao, Sudeep Dutt,
	linux-kernel, dmaengine

ChangeLog:
=========
v2 => v3:
a) MIC bus device private pointer cleanup as per feedback from
   Greg Kroah-Hartman.
b) Fixed minor Makefile conflict after rebasing to v3.16-rc2

v1 => v2: https://lkml.org/lkml/2014/5/29/981
a) MIC bus driver cleanups and device release callback fix in patch 2,
   as per feedback from Greg Kroah-Hartman.

v1: Initial post @ https://lkml.org/lkml/2014/5/27/819

These patches are being sent to char-misc because there is a dependency
between the patches for dma driver and other drivers.

Description:
============
This set of patches add support for MIC X100 dma driver.
MIC PCIe card has a dma controller with 8 channels. These channels are
shared between the host s/w and the card s/w. 0 to 3 are used by host
nd 4 to 7 by card. As the dma device doesn't show up as PCIe device,
a virtual bus called mic bus is created and virtual dma devices are
created on it by the host/card drivers. On host the channels are private
and used only by the host driver to transfer data for the virtio devices.

Here is a higher level block diagram.
                                      |
               +----------+           |             +----------+
               | Card OS  |           |             | Host OS  |
               +----------+           |             +----------+
                                      |
        +-------+ +--------+ +------+ | +---------+  +--------+ +--------+
        | Virtio| |Virtio  | |Virtio| | |Virtio   |  |Virtio  | |Virtio  |
        | Net   | |Console | |Block | | |Net      |  |Console | |Block   |
        | Driver| |Driver  | |Driver| | |backend  |  |backend | |backend |
        +-------+ +--------+ +------+ | +---------+  +--------+ +--------+
            |         |         |     |      |            |         |
            |         |         |     |User  |            |         |
            |         |         |     |------|------------|---------|-------
            +-------------------+     |Kernel +--------------------------+
                      |               |       | Virtio over PCIe IOCTLs  |
                      |               |       +--------------------------+
+-----------+         |               |                   |  +-----------+
| MIC DMA   |         |               |                   |  | MIC DMA   |
| Driver    |         |               |                   |  | Driver    |
+-----------+         |               |                   |  +-----------+
      |               |               |                   |        |
+---------------+     |               |                   |  +----------------+
|MIC virtual Bus|     |               |                   |  |MIC virtual Bus |
+---------------+     |               |                   |  +----------------+
      |               |               |                   |              |
      |   +--------------+            |            +---------------+     |
      |   |Intel MIC     |            |            |Intel MIC      |     |
      +---|Card Driver   |            |            |Host Driver    |     |
          +--------------+            |            +---------------+-----+
                      |               |                   |
             +-------------------------------------------------------------+
             |                                                             |
             |                    PCIe Bus                                 |
             +-------------------------------------------------------------+

The following series of patches are partitioned as follows:

Patch 1: Add mic bus and dma driver documentation.
Patch 2: Add a bus driver for virtual MIC devices.
Patch 3: MIC X100 DMA Driver.
Patch 4: Add threaded irq support in host driver.
	 This is needed as the dma driver uses threaded irq.
Patch 5: Use dma to transfer data between MIC and host.
	 Authors: Siva Yerramreddy, Ashutosh Dixit
Patch 6: Add threaded irq support in mic_request_card_irq.
	 This is needed as the dma driver uses threaded irq.
Patch 7: Add dma device on mic bus.
Patch 8: Modify the mpss script to load/unload mic_x100_dma.ko.

The patches have been compiled/validated against v3.16-rc2. Tested using
dmatest module with module parameter "threads_per_chan=60". These patches
have also been scanned by Fengguang Wu's 0-day infrastructure and no
issues have been reported.

Thanks to Dan Williams, Vinod Koul, Jon Mason, Dave Jiang for the initial
review.

Siva Yerramreddy (7):
  misc: mic: Add mic bus and dma driver documentation
  dma: MIC X100 DMA Driver
  misc: mic: add threaded irq support in host driver
  misc: mic: add dma support in host driver
  misc: mic: add threaded irq support in card driver
  misc: mic: add dma support in card driver
  misc: mic: add support for loading/unloading dma driver

Sudeep Dutt (1):
  misc: mic: add a bus driver for virtual MIC devices

 Documentation/mic/mic_overview.txt |  67 ++--
 Documentation/mic/mpssd/mpss       |  14 +-
 drivers/dma/Kconfig                |  19 +
 drivers/dma/Makefile               |   1 +
 drivers/dma/mic_x100_dma.c         | 774 +++++++++++++++++++++++++++++++++++++
 drivers/dma/mic_x100_dma.h         | 286 ++++++++++++++
 drivers/misc/mic/Kconfig           |  21 +-
 drivers/misc/mic/Makefile          |   1 +
 drivers/misc/mic/bus/Makefile      |   5 +
 drivers/misc/mic/bus/mic_bus.c     | 218 +++++++++++
 drivers/misc/mic/card/mic_device.c |  23 +-
 drivers/misc/mic/card/mic_device.h |   9 +-
 drivers/misc/mic/card/mic_virtio.c |   7 +-
 drivers/misc/mic/card/mic_x100.c   |  55 ++-
 drivers/misc/mic/host/mic_boot.c   |  83 +++-
 drivers/misc/mic/host/mic_device.h |  24 ++
 drivers/misc/mic/host/mic_intr.c   | 121 +++---
 drivers/misc/mic/host/mic_intr.h   |  27 +-
 drivers/misc/mic/host/mic_main.c   |   5 +-
 drivers/misc/mic/host/mic_virtio.c | 187 +++++++--
 drivers/misc/mic/host/mic_virtio.h |  21 +-
 drivers/misc/mic/host/mic_x100.c   |   8 +
 include/linux/mic_bus.h            | 110 ++++++
 23 files changed, 1935 insertions(+), 151 deletions(-)
 create mode 100644 drivers/dma/mic_x100_dma.c
 create mode 100644 drivers/dma/mic_x100_dma.h
 create mode 100644 drivers/misc/mic/bus/Makefile
 create mode 100644 drivers/misc/mic/bus/mic_bus.c
 create mode 100644 include/linux/mic_bus.h

-- 
1.8.2.1


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

end of thread, other threads:[~2014-07-14 14:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-11 21:04 [PATCH char-misc-next v3 0/8] Enable dma driver for MIC X100 Coprocessors Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 1/8] misc: mic: Add mic bus and dma driver documentation Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 2/8] misc: mic: add a bus driver for virtual MIC devices Sudeep Dutt
2014-07-12  1:27   ` Greg Kroah-Hartman
2014-07-12  1:31     ` Greg Kroah-Hartman
2014-07-12  6:49       ` Sudeep Dutt
2014-07-12 16:58         ` Greg Kroah-Hartman
2014-07-11 21:04 ` [PATCH char-misc-next v3 3/8] dma: MIC X100 DMA Driver Sudeep Dutt
2014-07-14  8:07   ` Paul Bolle
2014-07-14 14:46     ` Greg Kroah-Hartman
2014-07-11 21:04 ` [PATCH char-misc-next v3 4/8] misc: mic: add threaded irq support in host driver Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 5/8] misc: mic: add dma " Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 6/8] misc: mic: add threaded irq support in card driver Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 7/8] misc: mic: add dma " Sudeep Dutt
2014-07-11 21:04 ` [PATCH char-misc-next v3 8/8] misc: mic: add support for loading/unloading dma driver Sudeep Dutt

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.