[PATCH char-misc-next v4 01/13] misc: mic: SCIF header file and IOCTL interface
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
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
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
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