[v9,6/6] doc: update docs for ntb driver

Message ID 20190628025346.31312-7-xiaoyun.li@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series rawdev driver for ntb |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Li, Xiaoyun June 28, 2019, 2:53 a.m. UTC
  Update related documents for ntb pmd and example.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 MAINTAINERS                            |  9 +++++
 doc/guides/rawdevs/index.rst           |  1 +
 doc/guides/rawdevs/ntb_rawdev.rst      | 41 ++++++++++++++++++++++
 doc/guides/rel_notes/release_19_08.rst | 15 ++++++++
 doc/guides/sample_app_ug/index.rst     |  1 +
 doc/guides/sample_app_ug/ntb.rst       | 47 ++++++++++++++++++++++++++
 6 files changed, 114 insertions(+)
 create mode 100644 doc/guides/rawdevs/ntb_rawdev.rst
 create mode 100644 doc/guides/sample_app_ug/ntb.rst
  

Comments

Thomas Monjalon July 1, 2019, 2:24 p.m. UTC | #1
28/06/2019 04:53, Xiaoyun Li:
> +NTB Rawdev
> +M: Xiaoyun Li <xiaoyun.li@intel.com>
> +M: Jingjing Wu <jingjing.wu@intel.com>
> +F: drivers/raw/ntb_rawdev/
> +F: doc/guides/rawdevs/ntb_rawdev.rst

Please update MAINTAINERS while introducing files in previous patches.

> +++ b/doc/guides/rawdevs/ntb_rawdev.rst
> +And this PMD only supports intel skylake platform.

I guess the platform name require some uppercase or other characters.
Please request a full review of the doc by Intel colleagues.

> --- a/doc/guides/rel_notes/release_19_08.rst
> +++ b/doc/guides/rel_notes/release_19_08.rst
> +* **Introduced NTB PMD.**
> +
> +  The PMD provided a non-transparent bridge between two separate hosts so
> +  that they can communicate with each other. Thus, many user cases can
> +  benefit from this, such as fault tolerance and visual acceleration.
> +
> +  This PMD implemented the following features:
> +  * Handshake for device start and stop between two hosts.
> +  * Memory allocation for the peer to access and read/write allocated
> +    memory from peer.
> +  * Use doorbell registers to notify the peer and share some information
> +    by using scratchpad registers.
> +
> +  But the PMD hasn't implemented FIFO. The FIFO will come in 19.11 release.
> +  And this PMD only supports intel skylake platform.

You don't need to repeat the full doc in the release notes.
Please make it shorter.
And please update the release notes in the same patch as the code.

Thanks
  
Li, Xiaoyun July 2, 2019, 1:18 a.m. UTC | #2
Got it. Thanks.

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Monday, July 1, 2019 22:24
> To: Li, Xiaoyun <xiaoyun.li@intel.com>
> Cc: dev@dpdk.org; Wu, Jingjing <jingjing.wu@intel.com>; Wiles, Keith
> <keith.wiles@intel.com>; Liang, Cunming <cunming.liang@intel.com>; Maslekar,
> Omkar <omkar.maslekar@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v9 6/6] doc: update docs for ntb driver
> 
> 28/06/2019 04:53, Xiaoyun Li:
> > +NTB Rawdev
> > +M: Xiaoyun Li <xiaoyun.li@intel.com>
> > +M: Jingjing Wu <jingjing.wu@intel.com>
> > +F: drivers/raw/ntb_rawdev/
> > +F: doc/guides/rawdevs/ntb_rawdev.rst
> 
> Please update MAINTAINERS while introducing files in previous patches.
> 
> > +++ b/doc/guides/rawdevs/ntb_rawdev.rst
> > +And this PMD only supports intel skylake platform.
> 
> I guess the platform name require some uppercase or other characters.
> Please request a full review of the doc by Intel colleagues.
> 
> > --- a/doc/guides/rel_notes/release_19_08.rst
> > +++ b/doc/guides/rel_notes/release_19_08.rst
> > +* **Introduced NTB PMD.**
> > +
> > +  The PMD provided a non-transparent bridge between two separate
> > + hosts so  that they can communicate with each other. Thus, many user
> > + cases can  benefit from this, such as fault tolerance and visual acceleration.
> > +
> > +  This PMD implemented the following features:
> > +  * Handshake for device start and stop between two hosts.
> > +  * Memory allocation for the peer to access and read/write allocated
> > +    memory from peer.
> > +  * Use doorbell registers to notify the peer and share some information
> > +    by using scratchpad registers.
> > +
> > +  But the PMD hasn't implemented FIFO. The FIFO will come in 19.11 release.
> > +  And this PMD only supports intel skylake platform.
> 
> You don't need to repeat the full doc in the release notes.
> Please make it shorter.
> And please update the release notes in the same patch as the code.
> 
> Thanks
>
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 0c3b48920..0b8dd5983 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1078,6 +1078,11 @@  M: Nipun Gupta <nipun.gupta@nxp.com>
 F: drivers/raw/dpaa2_cmdif/
 F: doc/guides/rawdevs/dpaa2_cmdif.rst
 
+NTB Rawdev
+M: Xiaoyun Li <xiaoyun.li@intel.com>
+M: Jingjing Wu <jingjing.wu@intel.com>
+F: drivers/raw/ntb_rawdev/
+F: doc/guides/rawdevs/ntb_rawdev.rst
 
 Packet processing
 -----------------
@@ -1454,3 +1459,7 @@  F: examples/tep_termination/
 F: examples/vmdq/
 F: examples/vmdq_dcb/
 F: doc/guides/sample_app_ug/vmdq_dcb_forwarding.rst
+
+M: Xiaoyun Li <xiaoyun.li@intel.com>
+F: examples/ntb/
+F: doc/guides/sample_app_ug/ntb.rst
diff --git a/doc/guides/rawdevs/index.rst b/doc/guides/rawdevs/index.rst
index 7c3bd9586..cf6fcb06b 100644
--- a/doc/guides/rawdevs/index.rst
+++ b/doc/guides/rawdevs/index.rst
@@ -14,3 +14,4 @@  application through rawdev API.
     dpaa2_cmdif
     dpaa2_qdma
     ifpga_rawdev
+    ntb_rawdev
diff --git a/doc/guides/rawdevs/ntb_rawdev.rst b/doc/guides/rawdevs/ntb_rawdev.rst
new file mode 100644
index 000000000..429e2af3e
--- /dev/null
+++ b/doc/guides/rawdevs/ntb_rawdev.rst
@@ -0,0 +1,41 @@ 
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2018 Intel Corporation.
+
+NTB Rawdev Driver
+=================
+
+The ``ntb`` rawdev driver provides a non-transparent bridge between two
+separate hosts so that they can communicate with each other. Thus, many
+user cases can benefit from this, such as fault tolerance and visual
+acceleration.
+
+This PMD allows two hosts to handshake for device start and stop, memory
+allocation for the peer to access and read/write allocated memory from peer.
+Also, the PMD allows to use doorbell registers to notify the peer and share
+some information by using scratchpad registers.
+
+But the PMD hasn't implemented FIFO. The FIFO will come in 19.11 release.
+And this PMD only supports intel skylake platform.
+
+BIOS setting on skylake platform
+--------------------------------
+
+Intel non-transparent bridge needs special BIOS setting. Since the PMD only
+supports intel skylake platform, introduce BIOS setting here. The referencce
+is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf
+
+- Set the needed PCIe port as NTB to NTB mode on both hosts.
+- Enable NTB bars and set bar size of bar 23 and bar 45 as 12-29 (2K-512M)
+  on both hosts. Note that bar size on both hosts should be the same.
+- Disable split bars for both hosts.
+- Set crosslink control override as DSD/USP on one host, USD/DSP on
+  another host.
+- Disable PCIe PII SSC (Spread Spectrum Clocking) for both hosts. This
+  is a hardware requirement.
+
+Build options
+-------------
+
+- ``CONFIG_RTE_LIBRTE_IFPGA_RAWDEV`` (default ``y``)
+
+   Toggle compilation of the ``ntb_rawdev`` driver.
diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst
index 3da266705..f1858498a 100644
--- a/doc/guides/rel_notes/release_19_08.rst
+++ b/doc/guides/rel_notes/release_19_08.rst
@@ -99,6 +99,21 @@  New Features
   Updated ``librte_telemetry`` to fetch the global metrics from the
   ``librte_metrics`` library.
 
+* **Introduced NTB PMD.**
+
+  The PMD provided a non-transparent bridge between two separate hosts so
+  that they can communicate with each other. Thus, many user cases can
+  benefit from this, such as fault tolerance and visual acceleration.
+
+  This PMD implemented the following features:
+  * Handshake for device start and stop between two hosts.
+  * Memory allocation for the peer to access and read/write allocated
+    memory from peer.
+  * Use doorbell registers to notify the peer and share some information
+    by using scratchpad registers.
+
+  But the PMD hasn't implemented FIFO. The FIFO will come in 19.11 release.
+  And this PMD only supports intel skylake platform.
 
 Removed Items
 -------------
diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst
index 2945be08f..f23f8f59e 100644
--- a/doc/guides/sample_app_ug/index.rst
+++ b/doc/guides/sample_app_ug/index.rst
@@ -58,3 +58,4 @@  Sample Applications User Guides
     fips_validation
     ipsec_secgw
     bbdev_app
+    ntb
diff --git a/doc/guides/sample_app_ug/ntb.rst b/doc/guides/sample_app_ug/ntb.rst
new file mode 100644
index 000000000..079242175
--- /dev/null
+++ b/doc/guides/sample_app_ug/ntb.rst
@@ -0,0 +1,47 @@ 
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2019 Intel Corporation.
+
+NTB Sample Application
+======================
+
+The ntb sample application shows how to use ntb rawdev driver.
+This sample provides interactive mode to transmit file between
+two hosts.
+
+Compiling the Application
+-------------------------
+
+To compile the sample application see :doc:`compiling`.
+
+The application is located in the ``ntb`` sub-directory.
+
+Running the Application
+-----------------------
+
+The application requires an available core for each port, plus one.
+The only available options are the standard ones for the EAL:
+
+.. code-block:: console
+
+    ./build/ntb_fwd -c 0xf -n 6 -- -i
+
+Refer to the *DPDK Getting Started Guide* for general information on
+running applications and the Environment Abstraction Layer (EAL)
+options.
+
+Using the application
+---------------------
+
+The application is console-driven using the cmdline DPDK interface:
+
+.. code-block:: console
+
+        ntb>
+
+From this interface the available commands and descriptions of what
+they do as as follows:
+
+* ``send [filepath]``: Send file to the peer host.
+* ``receive [filepath]``: Receive file to [filepath]. Need the peer
+  to send file successfully first.
+* ``quit``: Exit program