[dpdk-dev] doc: add known issue of rte abort on FreeBSD

Message ID 1526653438-13256-1-git-send-email-reshma.pattan@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

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

Commit Message

Pattan, Reshma May 18, 2018, 2:23 p.m. UTC
  Added known issue of rte_abort taking a long time
on FreeBSD due to recent memory subsystem rework.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 doc/guides/rel_notes/release_18_05.rst | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
  

Comments

Anatoly Burakov May 21, 2018, 9:28 a.m. UTC | #1
On 18-May-18 3:23 PM, Reshma Pattan wrote:
> Added known issue of rte_abort taking a long time
> on FreeBSD due to recent memory subsystem rework.
> 
> Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
> ---
>   doc/guides/rel_notes/release_18_05.rst | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
> index 3dcb62538..c01781956 100644
> --- a/doc/guides/rel_notes/release_18_05.rst
> +++ b/doc/guides/rel_notes/release_18_05.rst
> @@ -485,6 +485,21 @@ Known Issues
>     dpdk-pdump example and any other applications using librte_pdump, cannot work
>     with older version DPDK primary applications.
>   
> +* **rte_abort takes a long time on FreeBSD due to memory subsytsem rework.**
> +
> +  With the recent memory subsystem changes, DPDK processes now allocate a large
> +  area of virtual memory address space. During rte_abort FreeBSD will dump the
> +  contents of the whole reserved memory range, not just the used portion, to a
> +  core dump file. Write this large core file can take a significant amount of
> +  time, causing processes to appear hung on the system.
> +
> +  The work around for the issue is to set the system resource limits for core
> +  dumps before running any tests e.g."limit coredumpsize 0". This will
> +  effectively disable core dumps on FreeBSD. If they are not to be completely
> +  disabled, a suitable limit, e.g. 1G might be specified instead of 0. This
> +  needs to be run per-shell session, or before every test run. This change
> +  can also be made persistent by adding "kern.coredump=0" to /etc/sysctl.conf
> +
>   
>   Shared Library Versions
>   -----------------------
> 

The explanation is slightly wrong.

The slowdown was there before memory rework - FreeBSD apparently dumps 
entire memory contents, including contigmem pages and anonymous pages. 
It's just that previously, we didn't preallocate so much memory, so it 
took ~5 seconds instead of minutes because it wasn't trying to dump 128 
gigabytes of VA space.

Otherwise,

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
  

Patch

diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index 3dcb62538..c01781956 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -485,6 +485,21 @@  Known Issues
   dpdk-pdump example and any other applications using librte_pdump, cannot work
   with older version DPDK primary applications.
 
+* **rte_abort takes a long time on FreeBSD due to memory subsytsem rework.**
+
+  With the recent memory subsystem changes, DPDK processes now allocate a large
+  area of virtual memory address space. During rte_abort FreeBSD will dump the
+  contents of the whole reserved memory range, not just the used portion, to a
+  core dump file. Write this large core file can take a significant amount of
+  time, causing processes to appear hung on the system.
+
+  The work around for the issue is to set the system resource limits for core
+  dumps before running any tests e.g."limit coredumpsize 0". This will
+  effectively disable core dumps on FreeBSD. If they are not to be completely
+  disabled, a suitable limit, e.g. 1G might be specified instead of 0. This
+  needs to be run per-shell session, or before every test run. This change
+  can also be made persistent by adding "kern.coredump=0" to /etc/sysctl.conf
+
 
 Shared Library Versions
 -----------------------