aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device/init.c
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2017-07-20 18:10:35 +0200
committerDamjan Marion <dmarion.lists@gmail.com>2017-09-07 16:09:21 +0000
commit49d66f1f42cbc310e4fa0dc526b9fdb91d0ca220 (patch)
treed6ebe20d0d6791650cd28b6b800d1dee2950f439 /src/plugins/dpdk/device/init.c
parentd630713d733718701f38176f98d563fd32679d06 (diff)
vlib physmem rework
This patch adds supprot support for multiple numa-aware physmem regions. Change-Id: I5c69a6f4da33c8ee21bdb8604d52fd2886f2327e Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins/dpdk/device/init.c')
-rwxr-xr-xsrc/plugins/dpdk/device/init.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index a795ba0e88e..e23542f7554 100755
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -17,10 +17,10 @@
#include <vppinfra/error.h>
#include <vppinfra/format.h>
#include <vppinfra/bitmap.h>
+#include <vlib/unix/unix.h>
#include <vnet/ethernet/ethernet.h>
#include <dpdk/device/dpdk.h>
-#include <vlib/unix/physmem.h>
#include <vlib/pci/pci.h>
#include <stdio.h>
@@ -1026,21 +1026,28 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
clib_bitmap_foreach (c, tm->cpu_socket_bitmap, (
{
int pages_avail, page_size, mem;
+ clib_error_t *e = 0;
vec_validate(mem_by_socket, c);
mem = mem_by_socket[c];
page_size = 1024;
- pages_avail = vlib_sysfs_get_free_hugepages(c, page_size * 1024);
+ e = vlib_sysfs_get_free_hugepages(c, page_size * 1024, &pages_avail);
- if (pages_avail < 0 || page_size * pages_avail < mem)
+ if (e != 0 || pages_avail < 0 || page_size * pages_avail < mem)
use_1g = 0;
+ if (e)
+ clib_error_free (e);
+
page_size = 2;
- pages_avail = vlib_sysfs_get_free_hugepages(c, page_size * 1024);
+ e = vlib_sysfs_get_free_hugepages(c, page_size * 1024, &pages_avail);
- if (pages_avail < 0 || page_size * pages_avail < mem)
+ if (e != 0 || pages_avail < 0 || page_size * pages_avail < mem)
use_2m = 0;
+
+ if (e)
+ clib_error_free (e);
}));
/* *INDENT-ON* */