From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagi Grimberg Subject: Re: [PATCH v2 0/3] new ib_drain_qp() API Date: Thu, 11 Feb 2016 12:46:30 +0200 Message-ID: <56BC6686.8030301@dev.mellanox.co.il> References: <010901d16375$1a023210$4e069630$@opengridcomputing.com> <011601d1637b$8c01a3e0$a404eba0$@opengridcomputing.com> <56BA540B.4040405@sandisk.com> <011901d1637d$b5286400$1f792c00$@opengridcomputing.com> <012801d16384$f68884f0$e3998ed0$@opengridcomputing.com> <56BB11F0.9090203@dev.mellanox.co.il> <56BB4479.8090009@sandisk.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <56BB4479.8090009-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Bart Van Assche , Steve Wise , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" Cc: 'Sagi Grimberg' , 'Christoph Hellwig' , 'Chuck Lever' List-Id: linux-rdma@vger.kernel.org >> I'd suggest to look at the CQ context and act accordingly, something >> like: >> >> if (cq->poll_ctx == IB_POLL_DIRECT) { >> while (!wait_for_completion_timeout(&sdrain.done, >> mescs_to_jiffies(100)) >> ib_process_cq_direct(cq, 1024) >> } else { >> wait_for_completion(&sdrain.done); >> } >> >> Thoughts? > > Hello Sagi, > > The above code will only work as expected if the caller won't call > ib_process_cq_direct() for the same queue from another context. Why? ib_poll_cq is safe from multiple contexts. Is it because the completion structures are on stack? because if so we can easily move them to the cq... -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html