lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 27 Jul 2015 16:52:35 -0700
From:	Ashutosh Dixit <ashutosh.dixit@...el.com>
To:	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	linux-kernel@...r.kernel.org
Cc:	Arnd Bergmann <arnd@...db.de>,
	Dasaratharaman Chandramouli 
	<dasaratharaman.chandramouli@...el.com>,
	Ashutosh Dixit <ashutosh.dixit@...el.com>,
	Sudeep Dutt <sudeep.dutt@...el.com>,
	Nikhil Rao <nikhil.rao@...el.com>
Subject: [PATCH char-misc-next 00/19] misc: mic: Enable COSM and remaining SCIF functionality

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ