On Tue, Mar 28, 2017 at 02:30:14PM +0300, Sagi Grimberg wrote: > I'm not sure what buffering is needed from the device at all in this > case, the device is simply expected to avoid signaling completions. > > Mellanox folks, any idea where is this limitation coming from? > Do we need a device capability for it? Fundamentally you must drive SQ flow control via CQ completions. For instance a ULP cannot disable all CQ notifications and keep stuffing things into the SQ. An alternative way to state this: A ULP cannot use activity on the RQ to infer that there is space in the SQ. Only CQ completions can be used to prove there is more available SQ space. Do not post to the SQ until a CQ has been polled proving available space. Ultimately you need a minimum of one CQ notification for every SQ depth post and the ULP must not post to the SQ once it fills until it sees the CQ notification. That usually drives the rule of thumb to notify every 1/2 depth, however any SQWE posting failures indicate a ULP bug.. There are a bunch of varied reasons for this, and it was discussed to death for NFS. NFS's bugs and wonkyness in this area went away when Chuck did strict accounting SQ capicty driven by the CQ... Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html