From: Ashutosh Dixit <ashutosh.dixit@intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
Dasaratharaman Chandramouli
<dasaratharaman.chandramouli@intel.com>,
Ashutosh Dixit <ashutosh.dixit@intel.com>,
Sudeep Dutt <sudeep.dutt@intel.com>,
Nikhil Rao <nikhil.rao@intel.com>
Subject: [PATCH char-misc-next 00/19] misc: mic: Enable COSM and remaining SCIF functionality
Date: Mon, 27 Jul 2015 16:52:35 -0700 [thread overview]
Message-ID: <cover.1438040669.git.ashutosh.dixit@intel.com> (raw)
The Symmetric Communication Interface (SCIF) API was accepted upstream
during the v4.2 merge window @ https://lkml.org/lkml/2015/3/30/865.
This patch series completes the implementation of the SCIF API and
also introduces the MIC Coprocessor State Management (COSM) drivers.
The first patch introduces SCIF poll which allows user and kernel mode
clients to block for events on a SCIF endpoint. The next patch
introduces support for SCIF kernel mode clients. SCIF clients are
probed when new SCIF nodes come online. Similarly the client remove
method is called as SCIF nodes go offline. The SCIF client framework
makes use of the SCIF peer bus infrastructure submitted previously.
The next seven patches are a re-factoring of functionality for boot,
shutdown and reset of MIC cards. This functionality, called COSM, was
previously present in the MIC host driver but has now been re-factored
into a separate driver so that it can be shared across multiple
generations of MIC products. The MIC sysfs interface documented
earlier has been updated. Further, the COSM host driver communicates
with a COSM client on the card using SCIF. COSM is therefore the first
kernel mode SCIF client and demonstrates the use of a subset of the
SCIF API.
Patch 10 converts the iova implementation used by INTEL_IOMMU into a
library without any implementation changes so that it can be reused by
SCIF to generate registered offsets.
Patch 11 onward completes the SCIF implementation by enabling the
following SCIF Remote Memory Access (RMA) functionality:
a. Memory registration to pin and unpin pages
b. Remote Memory mapping for low latency CPU accesses
c. Remote DMA (RDMA) for high bandwidth DMA transfers
d. Fence mechanisms to synchronize RDMAs
Documentation/mic/scif_overview.txt contains more information about
SCIF. This patch series is divided into 19 patches as follows:
1) SCIF poll
2) Support for kernel mode SCIF clients
3) MIC COSM bus
4) Coprocessor State Management (COSM) driver
5) COSM SCIF server
6) COSM client driver
7) Remove COSM functionality from the MIC host driver
8) Remove COSM functionality from the MIC card driver
9) Update MIC host daemon with COSM changes
10) Convert iova.c into a library
11) Add support to program MIC x100 status descriptors
12) SCIF RMA header file and IOCTL changes
13) SCIF RMA header file
14) SCIF memory registration and unregistration
15) SCIF RMA list operations
16) SCIF remote memory map/unmap interface
17) SCIF DMA and CPU copy interface
18) SCIF fence
19) SCIF RMA nodeqp and minor miscellaneous changes
These patches have also been scanned by Fengguang Wu's 0-day
infrastructure and no issues have been reported. The IOVA patch (patch
10) is being sent to char-misc because of the dependency between that
patch and SCIF patches 12 through 19.
Ashutosh Dixit (9):
misc: mic: SCIF poll
misc: mic: Add support for kernel mode SCIF clients
misc: mic: MIC COSM bus
misc: mic: Coprocessor State Management (COSM) driver
misc: mic: COSM SCIF server
misc: mic: COSM client driver
misc: mic: Remove COSM functionality from the MIC host driver
misc: mic: Remove COSM functionality from the MIC card driver
misc: mic: Update MIC host daemon with COSM changes
Harish Chegondi (1):
lib: convert iova.c into a library
Siva Yerramreddy (1):
dma: Add support to program MIC x100 status descriptiors
Sudeep Dutt (8):
misc: mic: SCIF RMA header file and IOCTL changes
misc: mic: SCIF RMA header file
misc: mic: SCIF memory registration and unregistration
misc: mic: SCIF RMA list operations
misc: mic: SCIF remote memory map/unmap interface
misc: mic: SCIF DMA and CPU copy interface
misc: mic: SCIF fence
misc: mic: SCIF RMA nodeqp and minor miscellaneous changes
Documentation/ABI/testing/sysfs-class-mic.txt | 29 +-
Documentation/mic/mic_overview.txt | 31 +-
Documentation/mic/mpssd/mpss | 4 +-
Documentation/mic/mpssd/mpssd.c | 362 +++--
Documentation/mic/mpssd/mpssd.h | 1 +
drivers/dma/mic_x100_dma.c | 44 +-
drivers/iommu/Kconfig | 5 +-
drivers/iommu/Makefile | 1 -
drivers/misc/mic/Kconfig | 23 +-
drivers/misc/mic/Makefile | 2 +
drivers/misc/mic/bus/Makefile | 1 +
drivers/misc/mic/bus/cosm_bus.c | 141 ++
drivers/misc/mic/bus/cosm_bus.h | 134 ++
drivers/misc/mic/bus/mic_bus.c | 22 +-
drivers/misc/mic/bus/scif_bus.c | 7 +-
drivers/misc/mic/bus/scif_bus.h | 6 +-
drivers/misc/mic/card/mic_device.c | 88 +-
drivers/misc/mic/card/mic_x100.c | 2 +-
drivers/misc/mic/common/mic_dev.h | 13 +
drivers/misc/mic/cosm/Makefile | 10 +
drivers/misc/mic/cosm/cosm_debugfs.c | 155 ++
drivers/misc/mic/cosm/cosm_main.c | 388 +++++
drivers/misc/mic/cosm/cosm_main.h | 70 +
drivers/misc/mic/cosm/cosm_scif_server.c | 405 +++++
drivers/misc/mic/cosm/cosm_sysfs.c | 461 ++++++
drivers/misc/mic/cosm_client/Makefile | 7 +
drivers/misc/mic/cosm_client/cosm_scif_client.c | 275 ++++
drivers/misc/mic/host/Makefile | 1 -
drivers/misc/mic/host/mic_boot.c | 317 +---
drivers/misc/mic/host/mic_debugfs.c | 114 +-
drivers/misc/mic/host/mic_device.h | 88 +-
drivers/misc/mic/host/mic_fops.c | 4 +-
drivers/misc/mic/host/mic_intr.c | 46 +-
drivers/misc/mic/host/mic_main.c | 223 +--
drivers/misc/mic/host/mic_smpt.c | 30 +-
drivers/misc/mic/host/mic_sysfs.c | 459 ------
drivers/misc/mic/host/mic_virtio.c | 17 +-
drivers/misc/mic/host/mic_virtio.h | 2 +-
drivers/misc/mic/host/mic_x100.c | 46 +-
drivers/misc/mic/scif/Makefile | 5 +
drivers/misc/mic/scif/scif_api.c | 223 ++-
drivers/misc/mic/scif/scif_debugfs.c | 85 +-
drivers/misc/mic/scif/scif_dma.c | 1979 +++++++++++++++++++++++
drivers/misc/mic/scif/scif_epd.c | 9 +-
drivers/misc/mic/scif/scif_epd.h | 50 +
drivers/misc/mic/scif/scif_fd.c | 168 ++
drivers/misc/mic/scif/scif_fence.c | 773 +++++++++
drivers/misc/mic/scif/scif_main.c | 107 +-
drivers/misc/mic/scif/scif_main.h | 35 +-
drivers/misc/mic/scif/scif_map.h | 25 +-
drivers/misc/mic/scif/scif_mmap.c | 711 ++++++++
drivers/misc/mic/scif/scif_nm.c | 20 +-
drivers/misc/mic/scif/scif_nodeqp.c | 118 +-
drivers/misc/mic/scif/scif_nodeqp.h | 42 +-
drivers/misc/mic/scif/scif_peer_bus.c | 179 +-
drivers/misc/mic/scif/scif_peer_bus.h | 42 +-
drivers/misc/mic/scif/scif_rma.c | 1761 ++++++++++++++++++++
drivers/misc/mic/scif/scif_rma.h | 464 ++++++
drivers/misc/mic/scif/scif_rma_list.c | 291 ++++
drivers/misc/mic/scif/scif_rma_list.h | 57 +
include/linux/mic_bus.h | 3 +-
include/linux/scif.h | 364 ++++-
include/uapi/linux/mic_common.h | 16 +-
include/uapi/linux/scif_ioctl.h | 85 +
lib/Kconfig | 6 +
lib/Makefile | 2 +
{drivers/iommu => lib}/iova.c | 9 +
67 files changed, 9985 insertions(+), 1678 deletions(-)
create mode 100644 drivers/misc/mic/bus/cosm_bus.c
create mode 100644 drivers/misc/mic/bus/cosm_bus.h
create mode 100644 drivers/misc/mic/cosm/Makefile
create mode 100644 drivers/misc/mic/cosm/cosm_debugfs.c
create mode 100644 drivers/misc/mic/cosm/cosm_main.c
create mode 100644 drivers/misc/mic/cosm/cosm_main.h
create mode 100644 drivers/misc/mic/cosm/cosm_scif_server.c
create mode 100644 drivers/misc/mic/cosm/cosm_sysfs.c
create mode 100644 drivers/misc/mic/cosm_client/Makefile
create mode 100644 drivers/misc/mic/cosm_client/cosm_scif_client.c
delete mode 100644 drivers/misc/mic/host/mic_sysfs.c
create mode 100644 drivers/misc/mic/scif/scif_dma.c
create mode 100644 drivers/misc/mic/scif/scif_fence.c
create mode 100644 drivers/misc/mic/scif/scif_mmap.c
create mode 100644 drivers/misc/mic/scif/scif_rma.c
create mode 100644 drivers/misc/mic/scif/scif_rma.h
create mode 100644 drivers/misc/mic/scif/scif_rma_list.c
create mode 100644 drivers/misc/mic/scif/scif_rma_list.h
rename {drivers/iommu => lib}/iova.c (97%)
--
2.0.0.rc3.2.g998f840
next reply other threads:[~2015-07-27 23:28 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-27 23:52 Ashutosh Dixit [this message]
2015-07-27 23:53 ` [PATCH char-misc-next 01/19] misc: mic: SCIF poll Ashutosh Dixit
2015-07-27 23:53 ` [PATCH char-misc-next 02/19] misc: mic: Add support for kernel mode SCIF clients Ashutosh Dixit
2015-07-27 23:54 ` [PATCH char-misc-next 03/19] misc: mic: MIC COSM bus Ashutosh Dixit
2015-07-27 23:54 ` [PATCH char-misc-next 04/19] misc: mic: Coprocessor State Management (COSM) driver Ashutosh Dixit
2015-07-27 23:55 ` [PATCH char-misc-next 05/19] misc: mic: COSM SCIF server Ashutosh Dixit
2015-07-27 23:55 ` [PATCH char-misc-next 06/19] misc: mic: COSM client driver Ashutosh Dixit
2015-07-27 23:55 ` [PATCH char-misc-next 07/19] misc: mic: Remove COSM functionality from the MIC host driver Ashutosh Dixit
2015-07-27 23:55 ` [PATCH char-misc-next 08/19] misc: mic: Remove COSM functionality from the MIC card driver Ashutosh Dixit
2015-07-27 23:56 ` [PATCH char-misc-next 09/19] misc: mic: Update MIC host daemon with COSM changes Ashutosh Dixit
2015-07-27 23:57 ` [PATCH char-misc-next 10/19] lib: convert iova.c into a library Ashutosh Dixit
2015-07-28 10:03 ` Joerg Roedel
2015-07-28 10:41 ` Robin Murphy
2015-07-28 14:38 ` David Woodhouse
2015-07-28 17:01 ` Sudeep Dutt
2015-07-28 20:40 ` Andrew Morton
2015-07-31 0:31 ` Ashutosh Dixit
2015-07-27 23:58 ` [PATCH char-misc-next 11/19] dma: Add support to program MIC x100 status descriptiors Ashutosh Dixit
2015-08-20 5:20 ` Vinod Koul
2015-08-20 17:30 ` Sudeep Dutt
2015-08-21 8:29 ` Vinod Koul
2015-08-21 16:14 ` Sudeep Dutt
2015-07-27 23:59 ` [PATCH char-misc-next 12/19] misc: mic: SCIF RMA header file and IOCTL changes Ashutosh Dixit
2015-07-27 23:59 ` [PATCH char-misc-next 13/19] misc: mic: SCIF RMA header file Ashutosh Dixit
2015-07-27 23:59 ` [PATCH char-misc-next 14/19] misc: mic: SCIF memory registration and unregistration Ashutosh Dixit
2015-07-28 0:00 ` [PATCH char-misc-next 15/19] misc: mic: SCIF RMA list operations Ashutosh Dixit
2015-07-28 0:00 ` [PATCH char-misc-next 16/19] misc: mic: SCIF remote memory map/unmap interface Ashutosh Dixit
2015-07-28 0:00 ` [PATCH char-misc-next 17/19] misc: mic: SCIF DMA and CPU copy interface Ashutosh Dixit
2015-07-28 0:00 ` [PATCH char-misc-next 18/19] misc: mic: SCIF fence Ashutosh Dixit
2015-07-28 0:01 ` [PATCH char-misc-next 19/19] misc: mic: SCIF RMA nodeqp and minor miscellaneous changes Ashutosh Dixit
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=cover.1438040669.git.ashutosh.dixit@intel.com \
--to=ashutosh.dixit@intel.com \
--cc=arnd@arndb.de \
--cc=dasaratharaman.chandramouli@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nikhil.rao@intel.com \
--cc=sudeep.dutt@intel.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;
as well as URLs for NNTP newsgroup(s).