-----"Jason Gunthorpe" <j...@ziepe.ca> wrote: ----- >To: "Bernard Metzler" <b...@zurich.ibm.com> >From: "Jason Gunthorpe" <j...@ziepe.ca> >Date: 07/12/2019 07:45PM >Cc: "Arnd Bergmann" <a...@arndb.de>, "Doug Ledford" ><dledf...@redhat.com>, "Peter Zijlstra" <pet...@infradead.org>, >linux-r...@vger.kernel.org, linux-kernel@vger.kernel.org >Subject: [EXTERNAL] Re: Re: Re: Re: Re: [PATCH] rdma/siw: avoid >smp_store_mb() on a u64 > >On Fri, Jul 12, 2019 at 05:40:43PM +0000, Bernard Metzler wrote: > >> It is because there are two levels a CQ can be armed: >> >> #include <infiniband/verbs.h> >> >> int ibv_req_notify_cq(struct ibv_cq *cq, int >solicited_only); >> >> If we kick the CQ handler, we have to clear the whole >> thing. The user later again decides how he wants to get it >> re-armed...SOLICITED completions only, or ALL signaled. > >Arrange it so only one of the two bits is ever set and do two >test-and-set bits when a SOLICITED CQE comes in? > right, but that's too easy ;) I'll probably do it along those lines.
Many thanks, Bernard.