[v2,2/3] docs/guides: updating turbo_sw building steps

Message ID 1559765434-250933-3-git-send-email-nicolas.chautru@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series [v2,1/3] baseband/turbo_sw: option to build turbosw PMD without SDK |

Checks

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

Commit Message

Chautru, Nicolas June 5, 2019, 8:10 p.m. UTC
  The documentation is clarified to point to steps on building the
SDK libraries which are now publicly available.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 doc/guides/bbdevs/turbo_sw.rst | 84 +++++++++++++++++++++++-------------------
 1 file changed, 46 insertions(+), 38 deletions(-)
  

Comments

Ferruh Yigit June 6, 2019, 10:34 a.m. UTC | #1
On 6/5/2019 9:10 PM, Nicolas Chautru wrote:
> The documentation is clarified to point to steps on building the
> SDK libraries which are now publicly available.
> 

I can see new SDK link is in the documentation, but can you please put that
information into the commit log too, to highlight it?

> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>  doc/guides/bbdevs/turbo_sw.rst | 84 +++++++++++++++++++++++-------------------
>  1 file changed, 46 insertions(+), 38 deletions(-)
> 
> diff --git a/doc/guides/bbdevs/turbo_sw.rst b/doc/guides/bbdevs/turbo_sw.rst
> index 29f7ec9..196b3d6 100644
> --- a/doc/guides/bbdevs/turbo_sw.rst
> +++ b/doc/guides/bbdevs/turbo_sw.rst
> @@ -1,26 +1,43 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2017 Intel Corporation
>  
> -SW Turbo Poll Mode Driver
> +SW FEC Poll Mode Driver

There seems two groups of changes in this patch,
- new SDK related changes,
- and renaming 's/Turbo/FEC'
For second one can you please put a brief description into commit log? Why Turbo
needs to be FEC. (This even can be a separate patch)

>  =========================
>  
> -The SW Turbo PMD (**baseband_turbo_sw**) provides a poll mode bbdev driver that utilizes
> -Intel optimized libraries for LTE Layer 1 workloads acceleration. This PMD
> -supports the functions: Turbo FEC, Rate Matching and CRC functions.
> +The SW FEC PMD (**baseband_turbo_sw**) provides a software only poll mode bbdev
> +driver that can optionally utilize Intel optimized libraries for LTE and 5GNR
> +Layer 1 workloads acceleration.

Is 5GNR Layer 1 workloads acceleration available in this stage of the PMD?

> +
> +Note that the driver can also be built without any dependency with reduced
> +functionality for maintenance purpose.
> +
> +To enable linking to the SDK libraries see detailed installation section below.
> +Two flags can be enabled depending on whether the target machine can support
> +AVX2 and AVX512 instructions sets and the related SDK libraries for vectorized
> +signal processing functions are installed :
> +- CONFIG_RTE_BBDEV_SDK_AVX2
> +- CONFIG_RTE_BBDEV_SDK_AVX512

This flag is not available (yet), can you please remove from this doc and add
with the patch that adds this flag?

<...>
  
Chautru, Nicolas June 6, 2019, 5:03 p.m. UTC | #2
>-----Original Message-----
>From: Yigit, Ferruh 
>Sent: Thursday, June 6, 2019 3:34 AM
>
>On 6/5/2019 9:10 PM, Nicolas Chautru wrote:
>> The documentation is clarified to point to steps on building the SDK 
>> libraries which are now publicly available.
>> 
>
>I can see new SDK link is in the documentation, but can you please put that information into the commit log too, to highlight it?

Fine with me. 

>
>> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
>> ---
>>  doc/guides/bbdevs/turbo_sw.rst | 84 
>> +++++++++++++++++++++++-------------------
>>  1 file changed, 46 insertions(+), 38 deletions(-)
>> 
>> diff --git a/doc/guides/bbdevs/turbo_sw.rst 
>> b/doc/guides/bbdevs/turbo_sw.rst index 29f7ec9..196b3d6 100644
>> --- a/doc/guides/bbdevs/turbo_sw.rst
>> +++ b/doc/guides/bbdevs/turbo_sw.rst
>> @@ -1,26 +1,43 @@
>>  ..  SPDX-License-Identifier: BSD-3-Clause
>>      Copyright(c) 2017 Intel Corporation
>>  
>> -SW Turbo Poll Mode Driver
>> +SW FEC Poll Mode Driver
>
>There seems two groups of changes in this patch,
>- new SDK related changes,
>- and renaming 's/Turbo/FEC'
>For second one can you please put a brief description into commit log? Why Turbo needs to be FEC. (This even can be a separate patch)
>

Fair enough. Name could be more accurate as Turbo means so different things but this is fairly cosmetic and we can change this in a future patchset. 
This would also require changes in the code which is not required now. So will put it back as before now. 

>>  =========================
>>  
>> -The SW Turbo PMD (**baseband_turbo_sw**) provides a poll mode bbdev 
>> driver that utilizes -Intel optimized libraries for LTE Layer 1 
>> workloads acceleration. This PMD -supports the functions: Turbo FEC, Rate Matching and CRC functions.
>> +The SW FEC PMD (**baseband_turbo_sw**) provides a software only poll 
>> +mode bbdev driver that can optionally utilize Intel optimized 
>> +libraries for LTE and 5GNR Layer 1 workloads acceleration.
>
>Is 5GNR Layer 1 workloads acceleration available in this stage of the PMD?
>

The SDK provided on the link supports both standards and set of libraries and these how they are referred on the webpage : "FlexRAN LTE and 5G NR FEC Software Development Kit Modules".
Still if you reckon this is confusing given this current PMD only links to the 4G ones then I can remove any mention of 5GNR. 
The related turbo_sw in patchwork v1 is extending this and hence documentation will eventually mention back 5GNR anyway. Will change now. 

>> +
>> +Note that the driver can also be built without any dependency with 
>> +reduced functionality for maintenance purpose.
>> +
>> +To enable linking to the SDK libraries see detailed installation section below.
>> +Two flags can be enabled depending on whether the target machine can 
>> +support
>> +AVX2 and AVX512 instructions sets and the related SDK libraries for 
>> +vectorized signal processing functions are installed :
>> +- CONFIG_RTE_BBDEV_SDK_AVX2
>> +- CONFIG_RTE_BBDEV_SDK_AVX512
>
>This flag is not available (yet), can you please remove from this doc and add with the patch that adds this flag?

No problem. The intention was to highlight where this is going with 2 sets of functionality depending on HW dependency as it is not necessarily obvious now that these are split into 2 patchsets. 
But you are right that this can be rephrased to be limited to AVX2 for now. 

Thanks

>
><...>
>
  

Patch

diff --git a/doc/guides/bbdevs/turbo_sw.rst b/doc/guides/bbdevs/turbo_sw.rst
index 29f7ec9..196b3d6 100644
--- a/doc/guides/bbdevs/turbo_sw.rst
+++ b/doc/guides/bbdevs/turbo_sw.rst
@@ -1,26 +1,43 @@ 
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2017 Intel Corporation
 
-SW Turbo Poll Mode Driver
+SW FEC Poll Mode Driver
 =========================
 
-The SW Turbo PMD (**baseband_turbo_sw**) provides a poll mode bbdev driver that utilizes
-Intel optimized libraries for LTE Layer 1 workloads acceleration. This PMD
-supports the functions: Turbo FEC, Rate Matching and CRC functions.
+The SW FEC PMD (**baseband_turbo_sw**) provides a software only poll mode bbdev
+driver that can optionally utilize Intel optimized libraries for LTE and 5GNR
+Layer 1 workloads acceleration.
+
+Note that the driver can also be built without any dependency with reduced
+functionality for maintenance purpose.
+
+To enable linking to the SDK libraries see detailed installation section below.
+Two flags can be enabled depending on whether the target machine can support
+AVX2 and AVX512 instructions sets and the related SDK libraries for vectorized
+signal processing functions are installed :
+- CONFIG_RTE_BBDEV_SDK_AVX2
+- CONFIG_RTE_BBDEV_SDK_AVX512
+By default these 2 flags are disabled by default. For AVX2 machine and SDK
+library installed then the first flag can be enabled. For AVX512 machine and
+SDK library installed then both flags can be enabled for full real time capability.
+
+This PMD supports the functions: FEC, Rate Matching and CRC functions detailed
+in the Features section.
 
 Features
 --------
 
-SW Turbo PMD has support for the following capabilities:
+SW FEC PMD can support for the following capabilities when the SDK libraries
+are used:
 
-For the encode operation:
+For the LTE encode operation:
 
 * ``RTE_BBDEV_TURBO_CRC_24A_ATTACH``
 * ``RTE_BBDEV_TURBO_CRC_24B_ATTACH``
 * ``RTE_BBDEV_TURBO_RATE_MATCH``
 * ``RTE_BBDEV_TURBO_RV_INDEX_BYPASS``
 
-For the decode operation:
+For the LTE decode operation:
 
 * ``RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE``
 * ``RTE_BBDEV_TURBO_CRC_TYPE_24B``
@@ -41,14 +58,10 @@  Installation
 FlexRAN SDK Download
 ~~~~~~~~~~~~~~~~~~~~
 
-To build DPDK with the *baseband_turbo_sw* PMD the user is required to download
-the export controlled ``FlexRAN SDK`` Libraries. An account at `Intel Resource
-Design Center <https://www.intel.com/content/www/us/en/design/resource-design-center.html>`_
-needs to be registered.
+As an option it is possible to link this driver with FleXRAN SDK libraries
+which can enable real time signal processing using AVX instructions.
 
-Once registered, the user needs to log in, and look for
-*Intel FlexRAN Software Release Package -18-09* to download or directly through
-this `link <https://cdrdv2.intel.com/v1/dl/getContent/605167>`_.
+These libraries are available through this link `link <https://software.intel.com/en-us/articles/flexran-lte-and-5g-nr-fec-software-development-kit-modules>`_.
 
 After download is complete, the user needs to unpack and compile on their
 system before building DPDK.
@@ -57,24 +70,24 @@  The following table maps DPDK versions with past FlexRAN SDK releases:
 
 .. _table_flexran_releases:
 
-.. table:: DPDK and FlexRAN SDK releases compliance
+.. table:: DPDK and FlexRAN FEC SDK releases compliance
 
    =====================  ============================
-   DPDK version           FlexRAN SDK release
+   DPDK version           FlexRAN FEC SDK release
    =====================  ============================
-   18.02                  1.3.0
-   18.05                  1.4.0
-   18.08                  1.6.0
-   19.02                  18.09
+   19.08                  19.04
    =====================  ============================
 
 FlexRAN SDK Installation
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
+Note that the installation of these libraries is optional.
+
 The following are pre-requisites for building FlexRAN SDK Libraries:
- (a) An AVX2 supporting machine
- (b) CentOS Linux release 7.2.1511 (Core) operating system
- (c) Intel ICC 18.0.1 20171018 compiler installed
+ (a) An AVX2 or AVX512 supporting machine
+ (b) CentOS Linux release 7.2.1511 (Core) operating system is advised
+ (c) Intel ICC 18.0.1 20171018 compiler or more recent and related libraries
+     ICC is available with a free community license `link <https://software.intel.com/en-us/system-studio/choose-download#technical>`_.
 
 The following instructions should be followed in this exact order:
 
@@ -84,25 +97,18 @@  The following instructions should be followed in this exact order:
 
         source <path-to-icc-compiler-install-folder>/linux/bin/compilervars.sh intel64 -platform linux
 
-#. Extract the ``605167-flexran-18-09-tar.gz`` package:
-
-    .. code-block:: console
-
-        mkdir FlexRAN-18.09
-        tar xvzf 605167-flexran-18-09-tar.gz -C FlexRAN-18.09/
-
 #. Run the SDK extractor script and accept the license:
 
     .. code-block:: console
 
-        cd <path-to-workspace>/FlexRAN-18.09/
-        ./SDK-18.09.sh
+        cd <path-to-workspace>
+        ./FlexRAN-FEC-SDK-19-04.sh
 
 #. Generate makefiles based on system configuration:
 
     .. code-block:: console
 
-        cd <path-to-workspace>/FlexRAN-18.09/SDK-18.09/sdk/
+        cd <path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/
         ./create-makefiles-linux.sh
 
 #. A build folder is generated in this form ``build-<ISA>-<CC>``, enter that
@@ -129,12 +135,14 @@  Example:
 
 .. code-block:: console
 
-    export FLEXRAN_SDK=<path-to-workspace>/FlexRAN-18.09/SDK-18.09/sdk/build-avx2-icc/install
-    export DIR_WIRELESS_SDK=<path-to-workspace>/FlexRAN-18.09/SDK-18.09/sdk/
-
+    export FLEXRAN_SDK=<path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/build-avx2-icc/install
+    export DIR_WIRELESS_SDK=<path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/build-avx2-icc/
 
-* Set ``CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=y`` in DPDK common configuration
-  file ``config/common_base``.
+* Set ``CONFIG_RTE_BBDEV_SDK_AVX2=y``
+  in DPDK common configuration file ``config/common_base`` to be able to use
+  the SDK libraries as mentioned above.
+  If no flag are set the PMD driver will still build but its capabilities
+  will be limited accordingly.
 
 To use the PMD in an application, user must: