On 10/17/23 12:55, Bob Pearson wrote:
Well.... the extra tracing did *not* show srp running out of iu's. So I converted cq handling to IB_POLL_SOFTIRQ from IB_POLL_DIRECT. This required adding a spinlock around list_add(&iu->list, ...) in srp_send_done(). The test now runs with all the completions handled correctly. But, it still hangs. So a red herring.
iu->list manipulations are protected by ch->lock. See also the lockdep_assert_held(&ch->lock) statements in the code that does manipulate this list and that does not grab ch->lock directly. Thanks, Bart.