+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> Change-Id: I38ef1d88b8a90864a2f0efbe98ecc1d0c7cdec1c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18229 Reviewed-by:
Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com>