[dpdk-dev] doc: Adds reference to use mlockall() in the Programmer's guide
Checks
Commit Message
When I was adding mlockall() to the testpmd application it was
suggested to add a reference to the use case of mlockall().
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
---
doc/guides/prog_guide/writing_efficient_code.rst | 14 ++++++++++++++
1 file changed, 14 insertions(+)
Comments
Hi Eelco,
Thanks for that. It is always good to get doc improvements.
Some minor comments below.
> -----Original Message-----
> From: Eelco Chaudron [mailto:echaudro@redhat.com]
> Sent: Friday, September 29, 2017 1:51 PM
> To: Mcnamara, John <john.mcnamara@intel.com>
> Cc: dev@dpdk.org
> Subject: [PATCH] doc: Adds reference to use mlockall() in the Programmer's
> guide
The title should be lowercase (except for known acronyms), <= 50 characters
and the verb should be in the imperative. This is explained in the Contributor's
Guide:
http://dpdk.org/doc/guides/contributing/patches.html#commit-messages-subject-line
Also you can check with the DPDK check-git-log.sh tool:
$ devtools/check-git-log.sh
Wrong headline uppercase:
doc: Adds reference to use mlockall() in the Programmer's guide
Headline too long:
doc: Adds reference to use mlockall() in the Programmer's guide
I'd suggest a title like:
doc: add use of mlockall to programmers guide
>
> diff --git a/doc/guides/prog_guide/writing_efficient_code.rst
> b/doc/guides/prog_guide/writing_efficient_code.rst
> index 8223aceea..3975026ce 100644
> --- a/doc/guides/prog_guide/writing_efficient_code.rst
> +++ b/doc/guides/prog_guide/writing_efficient_code.rst
> @@ -105,6 +105,20 @@ meaning that if all memory access operations are done
> on the first channel only,
>
> By default, the :ref:`Mempool Library <Mempool_Library>` spreads the
> addresses of objects among memory channels.
>
> +Locking memory pages
> +~~~~~~~~~~~~~~~~~~~~
Add a blank line after a header+underline.
> +The underlying operating system is allowed to load/unload memory pages at
> its own discretion.
> +These page loads could impact the performance, as the process is on hold
> when the kernel fetches them.
> +
> +To avoid these you could pre-load, and lock them into memory with the
> mlockall() call.
Include the function call in backquotes: ``mlockall()``.
Thanks,
John
Reviewed-by: John McNamara <john.mcnamara@intel.com>
On 29/09/17 17:44, Mcnamara, John wrote:
> Hi Eelco,
>
> Thanks for that. It is always good to get doc improvements.
> Some minor comments below.
>
Thanks for pointing out the below issues, and I send out a V2.
> The title should be lowercase (except for known acronyms), <= 50
> characters
> and the verb should be in the imperative. This is explained in the Contributor's
> Guide:
>
> http://dpdk.org/doc/guides/contributing/patches.html#commit-messages-subject-line
>
> Also you can check with the DPDK check-git-log.sh tool:
>
> $ devtools/check-git-log.sh
> Wrong headline uppercase:
> doc: Adds reference to use mlockall() in the Programmer's guide
> Headline too long:
> doc: Adds reference to use mlockall() in the Programmer's guide
>
> I'd suggest a title like:
>
> doc: add use of mlockall to programmers guide
>
>> diff --git a/doc/guides/prog_guide/writing_efficient_code.rst
>> b/doc/guides/prog_guide/writing_efficient_code.rst
>> index 8223aceea..3975026ce 100644
>> --- a/doc/guides/prog_guide/writing_efficient_code.rst
>> +++ b/doc/guides/prog_guide/writing_efficient_code.rst
>> @@ -105,6 +105,20 @@ meaning that if all memory access operations are done
>> on the first channel only,
>>
>> By default, the :ref:`Mempool Library <Mempool_Library>` spreads the
>> addresses of objects among memory channels.
>>
>> +Locking memory pages
>> +~~~~~~~~~~~~~~~~~~~~
> Add a blank line after a header+underline.
>
>> +The underlying operating system is allowed to load/unload memory pages at
>> its own discretion.
>> +These page loads could impact the performance, as the process is on hold
>> when the kernel fetches them.
>> +
>> +To avoid these you could pre-load, and lock them into memory with the
>> mlockall() call.
> Include the function call in backquotes: ``mlockall()``.
>
> Thanks,
>
> John
>
> Reviewed-by: John McNamara <john.mcnamara@intel.com>
>
>
@@ -105,6 +105,20 @@ meaning that if all memory access operations are done on the first channel only,
By default, the :ref:`Mempool Library <Mempool_Library>` spreads the addresses of objects among memory channels.
+Locking memory pages
+~~~~~~~~~~~~~~~~~~~~
+The underlying operating system is allowed to load/unload memory pages at its own discretion.
+These page loads could impact the performance, as the process is on hold when the kernel fetches them.
+
+To avoid these you could pre-load, and lock them into memory with the mlockall() call.
+
+.. code-block:: c
+
+ if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
+ RTE_LOG(NOTICE, USER1, "mlockall() failed with error \"%s\"\n",
+ strerror(errno));
+ }
+
Communication Between lcores
----------------------------