Re: Re: Re: Re: Re: Re: [PATCH] rdma/siw: avoid smp_store_mb() on a u64

Bernard Metzler
2019-07-12T18:06:33Z

-----"Jason Gunthorpe" <jgg@ziepe.ca> wrote: -----

>To: "Bernard Metzler" <BMT@zurich.ibm.com>
>From: "Jason Gunthorpe" <jgg@ziepe.ca>
>Date: 07/12/2019 07:45PM
>Cc: "Arnd Bergmann" <arnd@arndb.de>, "Doug Ledford"
><dledford@redhat.com>, "Peter Zijlstra" <peterz@infradead.org>,
>linux-rdma@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.