[dpdk-dev] [PATCH] app/test: fix mempool test failure on FreeBSD
Olivier Matz
olivier.matz at 6wind.com
Fri Oct 29 11:34:30 CEST 2021
Hi Dmitry,
On Fri, Oct 29, 2021 at 11:40:50AM +0300, Dmitry Kozlyuk wrote:
> FreeBSD EAL does not implement rte_mem_virt2iova()
> that was used in mempool_autotest, causing it to fail:
>
> EAL: Test assert test_mempool_flag_non_io_unset_when_populated_with_valid_iova
> line 781 failed: Cannot get IOVA
> test failed at test_mempool():1030
> Test Failed
>
> Change unit test to use rte_memzone_reserve() to allocate memory,
> which allows to obtain IOVA directly.
>
> Bugzilla ID: 863
> Fixes: 11541c5c81dd ("mempool: add non-IO flag")
>
> Reported-by: YuX Jiang <yux.jiang at intel.com>
> Signed-off-by: Dmitry Kozlyuk <dkozlyuk at nvidia.com>
Reviewed-by: Olivier Matz <olivier.matz at 6wind.com>
However, I launched the test like this and it failed:
$ ./build/app/test/dpdk-test --no-huge -m 512
EAL: Detected CPU lcores: 12
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /run/user/12489/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
APP: HPET is not enabled, using TSC as default timer
RTE>>mempool_autotest
(...)
EAL: Test assert test_mempool_events line 585 failed: Failed to populate mempool empty1: Success
test failed at test_mempool():1019
Test Failed
It appears that the failure comes from:
int
rte_mempool_populate_anon(struct rte_mempool *mp)
{
(...)
/* can't use MMAP_LOCKED, it does not exist on BSD */
if (rte_mem_lock(addr, size) < 0) {
=> rte_mem_unmap(addr, size);
return 0;
}
The errno here is 12 (ENOMEM). This is because of the default ulimit for
max locked memory: (kbytes, -l) 65536
If I increase it to 128000, it works.
Would it make sense to decrease the size of the pools so that we don't
reach this limit?
(...)
> @@ -789,12 +791,12 @@ test_mempool_flag_non_io_unset_when_populated_with_valid_iova(void)
> /*
> * Since objects from the pool are never used in the test,
> * we don't care for contiguous IOVA, on the other hand,
> - * reiuring it could cause spurious test failures.
> + * reqiuring it could cause spurious test failures.
nice try :D
More information about the dev
mailing list