+1
−0
Loading
The nvmf library was recently (73ba05f7) modified to use buffers from the iobuf pools instead of allocating its own pools. Since iobuf has two pools, one for small and one for large buffers, nvmf will only use the large pool if io_unit_size is larger than the size of a small buffer. By default, the RDMA transport uses io_unit_size=8K, but it can be increased depending on the max number of SGEs a NIC supports. And, because the large buffer pool has fewer elements than the small one, it can be exhausted by allocating the per-thread caches during the tests. This happens when running the tests on e810, which reports max_sge=6 causing io_unit_size to be set to 24K. This could have also been fixed by changing iobuf's options: either increasing the size of the large buffer pool or increasing small buffer size. However, that would require changes in most nvmf tests, so, instead, num_shared_buffers is set to a smaller value, so that we allocate fewer buffers from the pool. Fixes #3025. Signed-off-by:Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18229 (master) (cherry picked from commit aa34e8e0) Change-Id: I38ef1d88b8a90864a2f0efbe98ecc1d0c7cdec1c Signed-off-by:
Krzysztof Karas <krzysztof.karas@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18275 Reviewed-by:
Konrad Sztyber <konrad.sztyber@intel.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Tomasz Zawadzki <tomasz.zawadzki@intel.com>