Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: mic: convert docs to ReST and rename to *.rst

Convert Intel Many Integrated Core architecture docs to ReST.

The conversion is trivial: just add title and literal block
markups, and adjust some identation.

At its new index.rst, let's add a :orphan: while this is not linked to
the main index.rst file, in order to avoid build warnings.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

Mauro Carvalho Chehab and committed by
Jonathan Corbet
09bbf055 d67297ad

+57 -25
+18
Documentation/mic/index.rst
··· 1 + :orphan: 2 + 3 + ============================================= 4 + Intel Many Integrated Core (MIC) architecture 5 + ============================================= 6 + 7 + .. toctree:: 8 + :maxdepth: 1 9 + 10 + mic_overview 11 + scif_overview 12 + 13 + .. only:: subproject and html 14 + 15 + Indices 16 + ======= 17 + 18 + * :ref:`genindex`
+5 -1
Documentation/mic/mic_overview.txt Documentation/mic/mic_overview.rst
··· 1 + ====================================================== 2 + Intel Many Integrated Core (MIC) architecture overview 3 + ====================================================== 4 + 1 5 An Intel MIC X100 device is a PCIe form factor add-in coprocessor 2 6 card based on the Intel Many Integrated Core (MIC) architecture 3 7 that runs a Linux OS. It is a PCIe endpoint in a platform and therefore ··· 49 45 virtio backends are situated on the host rather than the card given better 50 46 single threaded performance for the host compared to MIC, the ability of 51 47 the host to initiate DMA's to/from the card using the MIC DMA engine and 52 - the fact that the virtio block storage backend can only be on the host. 48 + the fact that the virtio block storage backend can only be on the host:: 53 49 54 50 +----------+ | +----------+ 55 51 | Card OS | | | Host OS |
+34 -24
Documentation/mic/scif_overview.txt Documentation/mic/scif_overview.rst
··· 1 + ======================================== 2 + Symmetric Communication Interface (SCIF) 3 + ======================================== 4 + 1 5 The Symmetric Communication Interface (SCIF (pronounced as skiff)) is a low 2 6 level communications API across PCIe currently implemented for MIC. Currently 3 7 SCIF provides inter-node communication within a single host platform, where a ··· 12 8 abilities of the hardware. SCIF has been used to implement an offload compiler 13 9 runtime and OFED support for MPI implementations for MIC coprocessors. 14 10 15 - ==== SCIF API Components ==== 11 + SCIF API Components 12 + =================== 13 + 16 14 The SCIF API has the following parts: 15 + 17 16 1. Connection establishment using a client server model 18 17 2. Byte stream messaging intended for short messages 19 18 3. Node enumeration to determine online nodes ··· 35 28 DMA, CPU copies or remote memory mapping via mmap. SCIF supports both user and 36 29 kernel mode clients which are functionally equivalent. 37 30 38 - ==== SCIF Performance for MIC ==== 31 + SCIF Performance for MIC 32 + ======================== 33 + 39 34 DMA bandwidth comparison between the TCP (over ethernet over PCIe) stack versus 40 - SCIF shows the performance advantages of SCIF for HPC applications and runtimes. 35 + SCIF shows the performance advantages of SCIF for HPC applications and 36 + runtimes:: 41 37 42 38 Comparison of TCP and SCIF based BW 43 39 ··· 76 66 is distributed @ https://software.intel.com/en-us/mic-developer 77 67 78 68 Here is some pseudo code for an example of how two applications on two PCIe 79 - nodes would typically use the SCIF API: 69 + nodes would typically use the SCIF API:: 80 70 81 - Process A (on node A) Process B (on node B) 71 + Process A (on node A) Process B (on node B) 82 72 83 - /* get online node information */ 84 - scif_get_node_ids(..) scif_get_node_ids(..) 85 - scif_open(..) scif_open(..) 86 - scif_bind(..) scif_bind(..) 87 - scif_listen(..) 88 - scif_accept(..) scif_connect(..) 89 - /* SCIF connection established */ 73 + /* get online node information */ 74 + scif_get_node_ids(..) scif_get_node_ids(..) 75 + scif_open(..) scif_open(..) 76 + scif_bind(..) scif_bind(..) 77 + scif_listen(..) 78 + scif_accept(..) scif_connect(..) 79 + /* SCIF connection established */ 90 80 91 - /* Send and receive short messages */ 92 - scif_send(..)/scif_recv(..) scif_send(..)/scif_recv(..) 81 + /* Send and receive short messages */ 82 + scif_send(..)/scif_recv(..) scif_send(..)/scif_recv(..) 93 83 94 - /* Register memory */ 95 - scif_register(..) scif_register(..) 84 + /* Register memory */ 85 + scif_register(..) scif_register(..) 96 86 97 - /* RDMA */ 98 - scif_readfrom(..)/scif_writeto(..) scif_readfrom(..)/scif_writeto(..) 87 + /* RDMA */ 88 + scif_readfrom(..)/scif_writeto(..) scif_readfrom(..)/scif_writeto(..) 99 89 100 - /* Fence DMAs */ 101 - scif_fence_signal(..) scif_fence_signal(..) 90 + /* Fence DMAs */ 91 + scif_fence_signal(..) scif_fence_signal(..) 102 92 103 - mmap(..) mmap(..) 93 + mmap(..) mmap(..) 104 94 105 - /* Access remote registered memory */ 95 + /* Access remote registered memory */ 106 96 107 - /* Close the endpoints */ 108 - scif_close(..) scif_close(..) 97 + /* Close the endpoints */ 98 + scif_close(..) scif_close(..)