On Tue, Jan 7, 2020 at 7:25 PM Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > On Tue, Jan 07, 2020 at 02:19:53PM +0100, Jinpu Wang wrote: > > > > How can posting a signaled send prevent that the send queue overflows? > > > Isn't that something that can only be guaranteed by tracking the number > > > of WQE's in the send queue? > > Selective signaling works. All we need to do is signal one WR for > > every SQ-depth worth of WRs posted. For example, If the SQ depth is > > 16, we must signal at least one out of every 16. This ensures proper > > flow control for HW resources. > > Courtesy: section 8.2.1 of the iWARP Verbs draft > > http://tools.ietf.org/html/draft-hilland-rddp-verbs-00#section-8.2.1 > > Not quite. If the SQ depth is 16 and you post 16 things and then > signal the last one, you *cannot* post new work until you see the > completion. > > More SQ space *ONLY* becomes available upon receipt of a > completion. This is why you can't have an unsignaled SQ > > Jason Thanks for clarifying. The HW seems to be very fast to complete WR, that's why never see the problem. iser has a similar logic, see iser_signal_comp Jack