diff options
| author | Siva Yerramreddy <yshivakrishna@gmail.com> | 2014-07-11 17:04:19 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-07-11 21:27:56 -0400 |
| commit | a8035843770f34392bbadf0ba81ffa31ecb1209b (patch) | |
| tree | ac36ee22d5ccc67e3d3d2fcaa416c07021deae64 | |
| parent | ddddda9bc41c9214731def8665ad92414356d685 (diff) | |
misc: mic: Add mic bus and dma driver documentation
Added an overview of mic bus and dma driver.
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
Reviewed-by: Sudeep Dutt <sudeep.dutt@intel.com>
Signed-off-by: Siva Yerramreddy <yshivakrishna@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | Documentation/mic/mic_overview.txt | 67 |
1 files changed, 41 insertions, 26 deletions
diff --git a/Documentation/mic/mic_overview.txt b/Documentation/mic/mic_overview.txt index b41929224804..77c541802ad9 100644 --- a/Documentation/mic/mic_overview.txt +++ b/Documentation/mic/mic_overview.txt | |||
| @@ -17,35 +17,50 @@ for applications. A key benefit of our solution is that it leverages | |||
| 17 | the standard virtio framework for network, disk and console devices, | 17 | the standard virtio framework for network, disk and console devices, |
| 18 | though in our case the virtio framework is used across a PCIe bus. | 18 | though in our case the virtio framework is used across a PCIe bus. |
| 19 | 19 | ||
| 20 | MIC PCIe card has a dma controller with 8 channels. These channels are | ||
| 21 | shared between the host s/w and the card s/w. 0 to 3 are used by host | ||
| 22 | and 4 to 7 by card. As the dma device doesn't show up as PCIe device, | ||
| 23 | a virtual bus called mic bus is created and virtual dma devices are | ||
| 24 | created on it by the host/card drivers. On host the channels are private | ||
| 25 | and used only by the host driver to transfer data for the virtio devices. | ||
| 26 | |||
| 20 | Here is a block diagram of the various components described above. The | 27 | Here is a block diagram of the various components described above. The |
| 21 | virtio backends are situated on the host rather than the card given better | 28 | virtio backends are situated on the host rather than the card given better |
| 22 | single threaded performance for the host compared to MIC, the ability of | 29 | single threaded performance for the host compared to MIC, the ability of |
| 23 | the host to initiate DMA's to/from the card using the MIC DMA engine and | 30 | the host to initiate DMA's to/from the card using the MIC DMA engine and |
| 24 | the fact that the virtio block storage backend can only be on the host. | 31 | the fact that the virtio block storage backend can only be on the host. |
| 25 | 32 | ||
| 26 | | | 33 | | |
| 27 | +----------+ | +----------+ | 34 | +----------+ | +----------+ |
| 28 | | Card OS | | | Host OS | | 35 | | Card OS | | | Host OS | |
| 29 | +----------+ | +----------+ | 36 | +----------+ | +----------+ |
| 30 | | | 37 | | |
| 31 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ | 38 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ |
| 32 | | Virtio| |Virtio | |Virtio| | |Virtio | |Virtio | |Virtio | | 39 | | Virtio| |Virtio | |Virtio| | |Virtio | |Virtio | |Virtio | |
| 33 | | Net | |Console | |Block | | |Net | |Console | |Block | | 40 | | Net | |Console | |Block | | |Net | |Console | |Block | |
| 34 | | Driver| |Driver | |Driver| | |backend | |backend | |backend | | 41 | | Driver| |Driver | |Driver| | |backend | |backend | |backend | |
| 35 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ | 42 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ |
| 36 | | | | | | | | | 43 | | | | | | | | |
| 37 | | | | |User | | | | 44 | | | | |User | | | |
| 38 | | | | |------|------------|---------|------- | 45 | | | | |------|------------|---------|------- |
| 39 | +-------------------+ |Kernel +--------------------------+ | 46 | +-------------------+ |Kernel +--------------------------+ |
| 40 | | | | Virtio over PCIe IOCTLs | | 47 | | | | Virtio over PCIe IOCTLs | |
| 41 | | | +--------------------------+ | 48 | | | +--------------------------+ |
| 42 | +--------------+ | | | 49 | +-----------+ | | | +-----------+ |
| 43 | |Intel MIC | | +---------------+ | 50 | | MIC DMA | | | | | MIC DMA | |
| 44 | |Card Driver | | |Intel MIC | | 51 | | Driver | | | | | Driver | |
| 45 | +--------------+ | |Host Driver | | 52 | +-----------+ | | | +-----------+ |
| 46 | | | +---------------+ | 53 | | | | | | |
| 47 | | | | | 54 | +---------------+ | | | +----------------+ |
| 48 | +-------------------------------------------------------------+ | 55 | |MIC virtual Bus| | | | |MIC virtual Bus | |
| 49 | | | | 56 | +---------------+ | | | +----------------+ |
| 50 | | PCIe Bus | | 57 | | | | | | |
| 51 | +-------------------------------------------------------------+ | 58 | | +--------------+ | +---------------+ | |
| 59 | | |Intel MIC | | |Intel MIC | | | ||
| 60 | +---|Card Driver | | |Host Driver | | | ||
| 61 | +--------------+ | +---------------+-----+ | ||
| 62 | | | | | ||
| 63 | +-------------------------------------------------------------+ | ||
| 64 | | | | ||
| 65 | | PCIe Bus | | ||
| 66 | +-------------------------------------------------------------+ | ||
