[PATCH char-misc-next v4 01/13] misc: mic: SCIF header file and IOCTL interface

2015-04-29 Thread Sudeep Dutt
This patch introduces the SCIF documentation in the header file
and describes the IOCTL interface for user mode. mic_overview.txt
is updated with documentation on SCIF and a new document
describing SCIF in more details is available in scif_overview.txt.

Reviewed-by: Nikhil Rao 
Reviewed-by: Ashutosh Dixit 
Signed-off-by: Sudeep Dutt 
---
 Documentation/mic/mic_overview.txt  |  28 +-
 Documentation/mic/scif_overview.txt |  98 
 include/uapi/linux/Kbuild   |   1 +
 include/linux/scif.h| 993 
 include/uapi/linux/scif_ioctl.h | 130 +
 5 files changed, 1238 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/mic/scif_overview.txt
 create mode 100644 include/linux/scif.h
 create mode 100644 include/uapi/linux/scif_ioctl.h

diff --git a/Documentation/mic/mic_overview.txt 
b/Documentation/mic/mic_overview.txt
index 77c5418..1a2f2c8 100644
--- a/Documentation/mic/mic_overview.txt
+++ b/Documentation/mic/mic_overview.txt
@@ -24,6 +24,10 @@ 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.
 
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a
+low level communications API across PCIe currently implemented for MIC.
+More details are available at scif_overview.txt.
+
 Here is a block diagram of the various components described above. The
 virtio backends are situated on the host rather than the card given better
 single threaded performance for the host compared to MIC, the ability of
@@ -47,18 +51,18 @@ the fact that the virtio block storage backend can only be 
on the host.
   |   |   | Virtio over PCIe IOCTLs  |
   |   |   +--+
 +---+ |   |   |  +---+
-| MIC DMA   | |   |   |  | MIC DMA   |
-| Driver| |   |   |  | Driver|
-+---+ |   |   |  +---+
-  |   |   |   ||
-+---+ |   |   |  ++
-|MIC virtual Bus| |   |   |  |MIC virtual Bus |
-+---+ |   |   |  ++
-  |   |   |   |  |
-  |   +--+|+---+ |
-  |   |Intel MIC |||Intel MIC  | |
-  +---|Card Driver   |||Host Driver| |
-  +--+|+---+-+
+| MIC DMA   | |  +--+ | +---+ |  | MIC DMA   |
+| Driver| |  |  SCIF| | |   SCIF| |  | Driver|
++---+ |  +--+ | +---+ |  +---+
+  |   |   |   |   |   ||
++---+ | +-+-+ | +-+-+ | +---+
+|MIC virtual Bus| | |SCIF HW Bus| | |SCIF HW BUS| | |MIC virtual Bus|
++---+ | +---+ | +-+-+ | +---+
+  |   |   |   |   |   |  |
+  |   +--+|   |   |+---+ |
+  |   |Intel MIC ||   |   ||Intel MIC  | |
+  +---|Card Driver   ++   |   ||Host Driver| |
+  +--+|   ++---+-+
   |   |   |
  +-+
  | |
diff --git a/Documentation/mic/scif_overview.txt 
b/Documentation/mic/scif_overview.txt
new file mode 100644
index 000..0a280d9
--- /dev/null
+++ b/Documentation/mic/scif_overview.txt
@@ -0,0 +1,98 @@
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a low
+level communications API across PCIe currently implemented for MIC. Currently
+SCIF provides inter-node communication within a single host platform, where a
+node is a MIC Coprocessor or Xeon based host. SCIF abstracts the details of
+communicating over the PCIe bus while providing an API that is symmetric
+across all the nodes in the PCIe network. An important design objective for 
SCIF
+is to deliver the maximum possible performance given the communication
+abilities of the hardware. SCIF has been used to implement an offload compiler
+runtime and OFED support for MPI implementations for MIC coprocessors.
+
+ SCIF API Components 
+The SCIF API has the 

[PATCH char-misc-next v4 01/13] misc: mic: SCIF header file and IOCTL interface

2015-04-29 Thread Sudeep Dutt
This patch introduces the SCIF documentation in the header file
and describes the IOCTL interface for user mode. mic_overview.txt
is updated with documentation on SCIF and a new document
describing SCIF in more details is available in scif_overview.txt.

Reviewed-by: Nikhil Rao nikhil@intel.com
Reviewed-by: Ashutosh Dixit ashutosh.di...@intel.com
Signed-off-by: Sudeep Dutt sudeep.d...@intel.com
---
 Documentation/mic/mic_overview.txt  |  28 +-
 Documentation/mic/scif_overview.txt |  98 
 include/uapi/linux/Kbuild   |   1 +
 include/linux/scif.h| 993 
 include/uapi/linux/scif_ioctl.h | 130 +
 5 files changed, 1238 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/mic/scif_overview.txt
 create mode 100644 include/linux/scif.h
 create mode 100644 include/uapi/linux/scif_ioctl.h

diff --git a/Documentation/mic/mic_overview.txt 
b/Documentation/mic/mic_overview.txt
index 77c5418..1a2f2c8 100644
--- a/Documentation/mic/mic_overview.txt
+++ b/Documentation/mic/mic_overview.txt
@@ -24,6 +24,10 @@ 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.
 
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a
+low level communications API across PCIe currently implemented for MIC.
+More details are available at scif_overview.txt.
+
 Here is a block diagram of the various components described above. The
 virtio backends are situated on the host rather than the card given better
 single threaded performance for the host compared to MIC, the ability of
@@ -47,18 +51,18 @@ the fact that the virtio block storage backend can only be 
on the host.
   |   |   | Virtio over PCIe IOCTLs  |
   |   |   +--+
 +---+ |   |   |  +---+
-| MIC DMA   | |   |   |  | MIC DMA   |
-| Driver| |   |   |  | Driver|
-+---+ |   |   |  +---+
-  |   |   |   ||
-+---+ |   |   |  ++
-|MIC virtual Bus| |   |   |  |MIC virtual Bus |
-+---+ |   |   |  ++
-  |   |   |   |  |
-  |   +--+|+---+ |
-  |   |Intel MIC |||Intel MIC  | |
-  +---|Card Driver   |||Host Driver| |
-  +--+|+---+-+
+| MIC DMA   | |  +--+ | +---+ |  | MIC DMA   |
+| Driver| |  |  SCIF| | |   SCIF| |  | Driver|
++---+ |  +--+ | +---+ |  +---+
+  |   |   |   |   |   ||
++---+ | +-+-+ | +-+-+ | +---+
+|MIC virtual Bus| | |SCIF HW Bus| | |SCIF HW BUS| | |MIC virtual Bus|
++---+ | +---+ | +-+-+ | +---+
+  |   |   |   |   |   |  |
+  |   +--+|   |   |+---+ |
+  |   |Intel MIC ||   |   ||Intel MIC  | |
+  +---|Card Driver   ++   |   ||Host Driver| |
+  +--+|   ++---+-+
   |   |   |
  +-+
  | |
diff --git a/Documentation/mic/scif_overview.txt 
b/Documentation/mic/scif_overview.txt
new file mode 100644
index 000..0a280d9
--- /dev/null
+++ b/Documentation/mic/scif_overview.txt
@@ -0,0 +1,98 @@
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a low
+level communications API across PCIe currently implemented for MIC. Currently
+SCIF provides inter-node communication within a single host platform, where a
+node is a MIC Coprocessor or Xeon based host. SCIF abstracts the details of
+communicating over the PCIe bus while providing an API that is symmetric
+across all the nodes in the PCIe network. An important design objective for 
SCIF
+is to deliver the maximum possible performance given the communication
+abilities of the hardware. SCIF has been used to implement an offload compiler
+runtime and OFED support for MPI implementations for MIC 

[PATCH char-misc-next v4 01/13] misc: mic: SCIF header file and IOCTL interface

2015-03-30 Thread Sudeep Dutt
This patch introduces the SCIF documentation in the header file
and describes the IOCTL interface for user mode. mic_overview.txt
is updated with documentation on SCIF and a new document
describing SCIF in more details is available in scif_overview.txt.

Reviewed-by: Nikhil Rao 
Reviewed-by: Ashutosh Dixit 
Signed-off-by: Sudeep Dutt 
---
 Documentation/mic/mic_overview.txt  |  28 +-
 Documentation/mic/scif_overview.txt |  98 
 include/uapi/linux/Kbuild   |   1 +
 include/linux/scif.h| 993 
 include/uapi/linux/scif_ioctl.h | 130 +
 5 files changed, 1238 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/mic/scif_overview.txt
 create mode 100644 include/linux/scif.h
 create mode 100644 include/uapi/linux/scif_ioctl.h

diff --git a/Documentation/mic/mic_overview.txt 
b/Documentation/mic/mic_overview.txt
index 77c5418..1a2f2c8 100644
--- a/Documentation/mic/mic_overview.txt
+++ b/Documentation/mic/mic_overview.txt
@@ -24,6 +24,10 @@ 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.
 
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a
+low level communications API across PCIe currently implemented for MIC.
+More details are available at scif_overview.txt.
+
 Here is a block diagram of the various components described above. The
 virtio backends are situated on the host rather than the card given better
 single threaded performance for the host compared to MIC, the ability of
@@ -47,18 +51,18 @@ the fact that the virtio block storage backend can only be 
on the host.
   |   |   | Virtio over PCIe IOCTLs  |
   |   |   +--+
 +---+ |   |   |  +---+
-| MIC DMA   | |   |   |  | MIC DMA   |
-| Driver| |   |   |  | Driver|
-+---+ |   |   |  +---+
-  |   |   |   ||
-+---+ |   |   |  ++
-|MIC virtual Bus| |   |   |  |MIC virtual Bus |
-+---+ |   |   |  ++
-  |   |   |   |  |
-  |   +--+|+---+ |
-  |   |Intel MIC |||Intel MIC  | |
-  +---|Card Driver   |||Host Driver| |
-  +--+|+---+-+
+| MIC DMA   | |  +--+ | +---+ |  | MIC DMA   |
+| Driver| |  |  SCIF| | |   SCIF| |  | Driver|
++---+ |  +--+ | +---+ |  +---+
+  |   |   |   |   |   ||
++---+ | +-+-+ | +-+-+ | +---+
+|MIC virtual Bus| | |SCIF HW Bus| | |SCIF HW BUS| | |MIC virtual Bus|
++---+ | +---+ | +-+-+ | +---+
+  |   |   |   |   |   |  |
+  |   +--+|   |   |+---+ |
+  |   |Intel MIC ||   |   ||Intel MIC  | |
+  +---|Card Driver   ++   |   ||Host Driver| |
+  +--+|   ++---+-+
   |   |   |
  +-+
  | |
diff --git a/Documentation/mic/scif_overview.txt 
b/Documentation/mic/scif_overview.txt
new file mode 100644
index 000..0a280d9
--- /dev/null
+++ b/Documentation/mic/scif_overview.txt
@@ -0,0 +1,98 @@
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a low
+level communications API across PCIe currently implemented for MIC. Currently
+SCIF provides inter-node communication within a single host platform, where a
+node is a MIC Coprocessor or Xeon based host. SCIF abstracts the details of
+communicating over the PCIe bus while providing an API that is symmetric
+across all the nodes in the PCIe network. An important design objective for 
SCIF
+is to deliver the maximum possible performance given the communication
+abilities of the hardware. SCIF has been used to implement an offload compiler
+runtime and OFED support for MPI implementations for MIC coprocessors.
+
+ SCIF API Components 
+The SCIF API has the 

[PATCH char-misc-next v4 01/13] misc: mic: SCIF header file and IOCTL interface

2015-03-30 Thread Sudeep Dutt
This patch introduces the SCIF documentation in the header file
and describes the IOCTL interface for user mode. mic_overview.txt
is updated with documentation on SCIF and a new document
describing SCIF in more details is available in scif_overview.txt.

Reviewed-by: Nikhil Rao nikhil@intel.com
Reviewed-by: Ashutosh Dixit ashutosh.di...@intel.com
Signed-off-by: Sudeep Dutt sudeep.d...@intel.com
---
 Documentation/mic/mic_overview.txt  |  28 +-
 Documentation/mic/scif_overview.txt |  98 
 include/uapi/linux/Kbuild   |   1 +
 include/linux/scif.h| 993 
 include/uapi/linux/scif_ioctl.h | 130 +
 5 files changed, 1238 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/mic/scif_overview.txt
 create mode 100644 include/linux/scif.h
 create mode 100644 include/uapi/linux/scif_ioctl.h

diff --git a/Documentation/mic/mic_overview.txt 
b/Documentation/mic/mic_overview.txt
index 77c5418..1a2f2c8 100644
--- a/Documentation/mic/mic_overview.txt
+++ b/Documentation/mic/mic_overview.txt
@@ -24,6 +24,10 @@ 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.
 
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a
+low level communications API across PCIe currently implemented for MIC.
+More details are available at scif_overview.txt.
+
 Here is a block diagram of the various components described above. The
 virtio backends are situated on the host rather than the card given better
 single threaded performance for the host compared to MIC, the ability of
@@ -47,18 +51,18 @@ the fact that the virtio block storage backend can only be 
on the host.
   |   |   | Virtio over PCIe IOCTLs  |
   |   |   +--+
 +---+ |   |   |  +---+
-| MIC DMA   | |   |   |  | MIC DMA   |
-| Driver| |   |   |  | Driver|
-+---+ |   |   |  +---+
-  |   |   |   ||
-+---+ |   |   |  ++
-|MIC virtual Bus| |   |   |  |MIC virtual Bus |
-+---+ |   |   |  ++
-  |   |   |   |  |
-  |   +--+|+---+ |
-  |   |Intel MIC |||Intel MIC  | |
-  +---|Card Driver   |||Host Driver| |
-  +--+|+---+-+
+| MIC DMA   | |  +--+ | +---+ |  | MIC DMA   |
+| Driver| |  |  SCIF| | |   SCIF| |  | Driver|
++---+ |  +--+ | +---+ |  +---+
+  |   |   |   |   |   ||
++---+ | +-+-+ | +-+-+ | +---+
+|MIC virtual Bus| | |SCIF HW Bus| | |SCIF HW BUS| | |MIC virtual Bus|
++---+ | +---+ | +-+-+ | +---+
+  |   |   |   |   |   |  |
+  |   +--+|   |   |+---+ |
+  |   |Intel MIC ||   |   ||Intel MIC  | |
+  +---|Card Driver   ++   |   ||Host Driver| |
+  +--+|   ++---+-+
   |   |   |
  +-+
  | |
diff --git a/Documentation/mic/scif_overview.txt 
b/Documentation/mic/scif_overview.txt
new file mode 100644
index 000..0a280d9
--- /dev/null
+++ b/Documentation/mic/scif_overview.txt
@@ -0,0 +1,98 @@
+The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a low
+level communications API across PCIe currently implemented for MIC. Currently
+SCIF provides inter-node communication within a single host platform, where a
+node is a MIC Coprocessor or Xeon based host. SCIF abstracts the details of
+communicating over the PCIe bus while providing an API that is symmetric
+across all the nodes in the PCIe network. An important design objective for 
SCIF
+is to deliver the maximum possible performance given the communication
+abilities of the hardware. SCIF has been used to implement an offload compiler
+runtime and OFED support for MPI implementations for MIC