BW tests are filling send queues up to their size but polling completions in batches of 16. When using completion events, in case that more than 16 comletions are enqueued between two consecutive events or in particular there are more than 16 completions in CQ when last completion received, we won't poll all completions and will block infinitely waiting for an additional event.
BW tests are filling send queues up to their size but polling completions in batches of 16. When using completion events, in case that more than 16 comletions are enqueued between two consecutive events or in particular there are more than 16 completions in CQ when last completion received, we won't poll all completions and will block infinitely waiting for an additional event.
Reproduce example: ib_send_bw -x 0 -F -a -q 8 -l 64 -n 6400 -e & ib_send_bw -x 0 -F -a -q 8 -l 64 -n 6400 -e localhost
Fix this by making sure all completions were polled before pending on event.