diff options
author | Damjan Marion <damarion@cisco.com> | 2020-11-19 15:12:29 +0100 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2020-11-19 18:03:22 +0000 |
commit | 97d6860b229e15c5d34931f6ca440adb32e600dc (patch) | |
tree | af28abf7f89cef9e9f7959c856848298da642c9c /src/plugins | |
parent | e3e9d8af46a407afc6e7e83cf705f604c771923f (diff) |
dpdk: remove dpdk_early_init
We cannot disable dpdk plugin if hugepages are not present, as there
are some valid uses cases where dpdk works unpriviledged without
hugepages.
Type: fix
Change-Id: If67d8c941617ac0f16d496655d2bb6e489d34ad4
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/dpdk/main.c | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/plugins/dpdk/main.c b/src/plugins/dpdk/main.c index ef93a224ef9..413a0f0df9d 100644 --- a/src/plugins/dpdk/main.c +++ b/src/plugins/dpdk/main.c @@ -96,61 +96,9 @@ VLIB_INIT_FUNCTION (dpdk_main_init) = { .runs_after = VLIB_INITS("dpdk_init"), }; -/* *INDENT-ON* */ - - -__clib_export clib_error_t * -dpdk_early_init (vlib_main_t *vm) -{ - int fd = -1; - u64 *pt = 0; - clib_error_t *err = 0; - - /* check if pagemap is accessible - if we get zero result - dpdk will not be able to get physical memory address and game is over - unless we have IOMMU */ - pt = clib_mem_vm_get_paddr (&pt, CLIB_MEM_PAGE_SZ_DEFAULT, 1); - if (pt && pt[0]) - goto check_hugetlb; - - if ((fd = open ("/dev/vfio/vfio", O_RDWR)) == -1) - goto error; - - if (ioctl (fd, VFIO_GET_API_VERSION) != VFIO_API_VERSION) - goto error; - - /* if we have type 1 IOMMU page map is not needed */ - if (ioctl (fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1_IOMMU) != 1) - goto error; - -check_hugetlb: - fd = clib_mem_vm_create_fd (CLIB_MEM_PAGE_SZ_DEFAULT_HUGE, - "dpdk early init"); - if (fd != -1) - { - u8 *page = clib_mem_vm_map_shared (0, 1, fd, 0, "dpdk_early_init"); - if (page != CLIB_MEM_VM_MAP_FAILED) - { - clib_mem_vm_unmap (page); - goto done; - } - } - -error: - err = clib_error_return (0, "access to physical devices is not allowed"); - -done: - if (fd != -1) - close (fd); - vec_free (pt); - return err; -} - -/* *INDENT-OFF* */ VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, .description = "Data Plane Development Kit (DPDK)", - .early_init = "dpdk_early_init", }; /* *INDENT-ON* */ |