app/testpmd: disable memory locking on FreeBSD
authorAnatoly Burakov <anatoly.burakov@intel.com>
Thu, 3 May 2018 12:38:20 +0000 (13:38 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 14 May 2018 01:52:54 +0000 (03:52 +0200)
If mlockall() is called while allocated VA space is bigger than
amount of available RAM, FreeBSD kernel will deadlock and need
a hard reboot. We do allocate big amounts of memory because of
how new memory subsystem works, so calling mlockall() will cause
a deadlock. So, disable mlockall() by default on FreeBSD.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
app/test-pmd/testpmd.c

index 77490be..38b8b7a 100644 (file)
@@ -2615,6 +2615,13 @@ main(int argc, char** argv)
        latencystats_enabled = 0;
 #endif
 
+       /* on FreeBSD, mlockall() is disabled by default */
+#ifdef RTE_EXEC_ENV_BSDAPP
+       do_mlockall = 0;
+#else
+       do_mlockall = 1;
+#endif
+
        argc -= diag;
        argv += diag;
        if (argc > 1)