+23
−6
Loading
Turns out that kernel SQ_POLL thread inherits the same CPU mask as the thread it was called from. In case of SPDK that would cover the CPU mask of the application. This severely limits the throughput, as SPDK and kernel thread compete for the same core. To the order of less than 1 MiB/s, resulting in test time outs on CI too. There does not seem to be a way to remove this restriction. Meanwhile IORING_SETUP_SQ_AFF during ring initialization only allows to pass a specific core, rather than a mask. IORING_REGISTER_IOWQ_AFF opcode to io_uring_register() should have been the solution to this problem, but it does not work on my system as expected. Leaving unaffinitization as only solution for now. This patch unaffinitizes the SPDK thread only for the ring initialization, so no such restriction is imposed on the SQ_POLL thread. Signed-off-by:Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I7146c5e08bcb63219f800a3e0c343bb09fabd9f8 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21880 Community-CI: Mellanox Build Bot Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by:
Jim Harris <jim.harris@samsung.com>