On 10/17/23 15:06, Bart Van Assche wrote: > 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. Thanks. Saw that. I just added ch->lock'ing around the list_add. It works if you don't call ib_process_cq_direct which was inside the lock and use poll_softirq instead which runs on it's own thread. Bob