On Sat, Feb 20, 2021 at 08:40:02AM +0000, liweihang wrote: > On 2021/2/10 3:54, Jason Gunthorpe wrote: > > On Sun, Feb 07, 2021 at 11:12:49AM +0800, Weihang Li wrote: > >> The HIP09 introduces the DCA(Dynamic Context Attachment) feature which > >> supports many RC QPs to share the WQE buffer in a memory pool. If a QP > >> enables DCA feature, the WQE's buffer will not be allocated when creating > >> but when the users start to post WRs. This will reduce the memory > >> consumption when there are too many QPs are inactive. > >> One a WQE buffer is allocated it still acts as a normal WQE ring > > buffer? So this DCA logic is to remap the send queue buffer based on > > demand for SQEs? How does it interact with the normal max send queue > > entries reported? > > > > Not exactly. If DCA is enabled, we first allocate a memory pool with a > default size when opening device. Each time we trying to post WR(s) to a > QP, the driver will check if current QP has WQE buffer. > > If not, the driver will check whether there is enough free memory in the > DCA memory pool. If there is, the QP will get WQE buffer from the > pool, Does that mean the QP can have a non-contiguous list of buffers? Ie it isn't just a linear ring of memory? Jason