doc: document libnuma requirement for NUMA systems

Message ID 93e6481f516c2549308e0745388a0bd80b44e783.1548954304.git.anatoly.burakov@intel.com (mailing list archive)
State Accepted, archived
Headers
Series doc: document libnuma requirement for NUMA systems |

Checks

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

Commit Message

Anatoly Burakov Jan. 31, 2019, 5:05 p.m. UTC
  Since 18.05, libnuma is pretty much required on Linux when using
non-legacy mode, because without it, we cannot know where our
hugepages are located [1].

In legacy mode, libnuma is not required because we can still sort
pages by sockets, as we use pagemap lookup method to figure out
socket ID's for pages.

So, document libnuma as required for NUMA systems and non-legacy
mode.

[1] https://mails.dpdk.org/archives/dev/2018-December/120490.html

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 doc/guides/linux_gsg/sys_reqs.rst | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Kevin Traynor Jan. 31, 2019, 6:14 p.m. UTC | #1
On 01/31/2019 05:05 PM, Anatoly Burakov wrote:
> Since 18.05, libnuma is pretty much required on Linux when using
> non-legacy mode, because without it, we cannot know where our
> hugepages are located [1].
> 
> In legacy mode, libnuma is not required because we can still sort
> pages by sockets, as we use pagemap lookup method to figure out
> socket ID's for pages.
> 
> So, document libnuma as required for NUMA systems and non-legacy
> mode.
> 
> [1] https://mails.dpdk.org/archives/dev/2018-December/120490.html
> 

Might as well add to the stable docs also. Picking this commit as it's
where both mode are available

Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
Cc: stable@dpdk.org

> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
>  doc/guides/linux_gsg/sys_reqs.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
> index 8ec3af491..23cfc27ab 100644
> --- a/doc/guides/linux_gsg/sys_reqs.rst
> +++ b/doc/guides/linux_gsg/sys_reqs.rst
> @@ -70,6 +70,14 @@ Compilation of the DPDK
>  
>      * libnuma-dev in Debian/Ubuntu;
>  
> +    .. note::
> +
> +        On systems with NUMA support, `libnuma-dev` (aka `numactl-devel`) is a
> +        recommended dependency when `--legacy-mem` switch is used, and a
> +        *required* dependency if default memory mode is used. While DPDK will
> +        compile and run without `libnuma` even on NUMA-enabled systems, both
> +        usability and performance will be degraded.
> +
>  *   Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
>  
>  
> 

Acked-by: Kevin Traynor <ktraynor@redhat.com>
  
Anatoly Burakov Feb. 1, 2019, 10:28 a.m. UTC | #2
On 31-Jan-19 6:14 PM, Kevin Traynor wrote:
> On 01/31/2019 05:05 PM, Anatoly Burakov wrote:
>> Since 18.05, libnuma is pretty much required on Linux when using
>> non-legacy mode, because without it, we cannot know where our
>> hugepages are located [1].
>>
>> In legacy mode, libnuma is not required because we can still sort
>> pages by sockets, as we use pagemap lookup method to figure out
>> socket ID's for pages.
>>
>> So, document libnuma as required for NUMA systems and non-legacy
>> mode.
>>
>> [1] https://mails.dpdk.org/archives/dev/2018-December/120490.html
>>
> 
> Might as well add to the stable docs also. Picking this commit as it's
> where both mode are available
> 
> Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
> Cc: stable@dpdk.org

Yup, thought of that right after leaving office yesterday! :)

> 
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>>   doc/guides/linux_gsg/sys_reqs.rst | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
>> index 8ec3af491..23cfc27ab 100644
>> --- a/doc/guides/linux_gsg/sys_reqs.rst
>> +++ b/doc/guides/linux_gsg/sys_reqs.rst
>> @@ -70,6 +70,14 @@ Compilation of the DPDK
>>   
>>       * libnuma-dev in Debian/Ubuntu;
>>   
>> +    .. note::
>> +
>> +        On systems with NUMA support, `libnuma-dev` (aka `numactl-devel`) is a
>> +        recommended dependency when `--legacy-mem` switch is used, and a
>> +        *required* dependency if default memory mode is used. While DPDK will
>> +        compile and run without `libnuma` even on NUMA-enabled systems, both
>> +        usability and performance will be degraded.
>> +
>>   *   Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
>>   
>>   
>>
> 
> Acked-by: Kevin Traynor <ktraynor@redhat.com>
>
  
Thomas Monjalon Feb. 1, 2019, 10:51 a.m. UTC | #3
01/02/2019 11:28, Burakov, Anatoly:
> On 31-Jan-19 6:14 PM, Kevin Traynor wrote:
> > On 01/31/2019 05:05 PM, Anatoly Burakov wrote:
> >> Since 18.05, libnuma is pretty much required on Linux when using
> >> non-legacy mode, because without it, we cannot know where our
> >> hugepages are located [1].
> >>
> >> In legacy mode, libnuma is not required because we can still sort
> >> pages by sockets, as we use pagemap lookup method to figure out
> >> socket ID's for pages.
> >>
> >> So, document libnuma as required for NUMA systems and non-legacy
> >> mode.
> >>
> >> [1] https://mails.dpdk.org/archives/dev/2018-December/120490.html
> >>
> > 
> > Might as well add to the stable docs also. Picking this commit as it's
> > where both mode are available
> > 
> > Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
> > Cc: stable@dpdk.org
> 
> Yup, thought of that right after leaving office yesterday! :)

Applied, thanks
  

Patch

diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
index 8ec3af491..23cfc27ab 100644
--- a/doc/guides/linux_gsg/sys_reqs.rst
+++ b/doc/guides/linux_gsg/sys_reqs.rst
@@ -70,6 +70,14 @@  Compilation of the DPDK
 
     * libnuma-dev in Debian/Ubuntu;
 
+    .. note::
+
+        On systems with NUMA support, `libnuma-dev` (aka `numactl-devel`) is a
+        recommended dependency when `--legacy-mem` switch is used, and a
+        *required* dependency if default memory mode is used. While DPDK will
+        compile and run without `libnuma` even on NUMA-enabled systems, both
+        usability and performance will be degraded.
+
 *   Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.