diff mbox

[RFC,2/5] verbs: Introduce tag matching SRQ

Message ID 1497249767-15353-3-git-send-email-artemyko@mellanox.com (mailing list archive)
State RFC
Headers show

Commit Message

Artemy Kovalyov June 12, 2017, 6:42 a.m. UTC
Introducing tag matching SRQ (TM-SRQ), which retains basic semantic of
regular SRQ, reports completions to own CQ, and has additional tag
based message receiving mechanism.

Change-Id: Ic527680984f343608507ba2162147435be2f7aee
Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
---
 libibverbs/verbs.h | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Jason Gunthorpe June 12, 2017, 4:38 p.m. UTC | #1
On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
> Introducing tag matching SRQ (TM-SRQ), which retains basic semantic of
> regular SRQ, reports completions to own CQ, and has additional tag
> based message receiving mechanism.
> 
> Change-Id: Ic527680984f343608507ba2162147435be2f7aee

Drop change-id from all your patches

>  enum ibv_srq_type {
>  	IBV_SRQT_BASIC,
> -	IBV_SRQT_XRC
> +	IBV_SRQT_XRC,
> +	IBV_SRQT_TAG_MATCHING
>  };

Please put trailing commas on all these enum changes in all patches

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Artemy Kovalyov June 12, 2017, 8:38 p.m. UTC | #2
On 12/06/2017 19:38, Jason Gunthorpe wrote:
> On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
>>  enum ibv_srq_type {
>>  	IBV_SRQT_BASIC,
>> -	IBV_SRQT_XRC
>> +	IBV_SRQT_XRC,
>> +	IBV_SRQT_TAG_MATCHING
>>  };
>
> Please put trailing commas on all these enum changes in all patches

So do we drop overboard all -Wpedantic users?
>
> Jason
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jason Gunthorpe June 12, 2017, 8:50 p.m. UTC | #3
On Mon, Jun 12, 2017 at 11:38:09PM +0300, Artemy Kovalyov wrote:
> 
> 
> On 12/06/2017 19:38, Jason Gunthorpe wrote:
> >On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
> >> enum ibv_srq_type {
> >> 	IBV_SRQT_BASIC,
> >>-	IBV_SRQT_XRC
> >>+	IBV_SRQT_XRC,
> >>+	IBV_SRQT_TAG_MATCHING
> >> };
> >
> >Please put trailing commas on all these enum changes in all patches
> 
> So do we drop overboard all -Wpedantic users?

Eh? Try it.

You only get warnings if your compiler is running in c89 or ansi mode,
which went 'overboard' a long time ago.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Artemy Kovalyov June 12, 2017, 9:09 p.m. UTC | #4
On 12/06/2017 23:50, Jason Gunthorpe wrote:
> On Mon, Jun 12, 2017 at 11:38:09PM +0300, Artemy Kovalyov wrote:
>>
>>
>> On 12/06/2017 19:38, Jason Gunthorpe wrote:
>>> On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
>>>> enum ibv_srq_type {
>>>> 	IBV_SRQT_BASIC,
>>>> -	IBV_SRQT_XRC
>>>> +	IBV_SRQT_XRC,
>>>> +	IBV_SRQT_TAG_MATCHING
>>>> };
>>>
>>> Please put trailing commas on all these enum changes in all patches
>>
>> So do we drop overboard all -Wpedantic users?
>
> Eh? Try it.
>
> You only get warnings if your compiler is running in c89 or ansi mode,
> which went 'overboard' a long time ago.
Bare -Wpedantic -Werror fails with this.

>
> Jason
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jason Gunthorpe June 12, 2017, 9:18 p.m. UTC | #5
On Tue, Jun 13, 2017 at 12:09:29AM +0300, Artemy Kovalyov wrote:
> 
> 
> On 12/06/2017 23:50, Jason Gunthorpe wrote:
> >On Mon, Jun 12, 2017 at 11:38:09PM +0300, Artemy Kovalyov wrote:
> >>
> >>
> >>On 12/06/2017 19:38, Jason Gunthorpe wrote:
> >>>On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
> >>>>enum ibv_srq_type {
> >>>>	IBV_SRQT_BASIC,
> >>>>-	IBV_SRQT_XRC
> >>>>+	IBV_SRQT_XRC,
> >>>>+	IBV_SRQT_TAG_MATCHING
> >>>>};
> >>>
> >>>Please put trailing commas on all these enum changes in all patches
> >>
> >>So do we drop overboard all -Wpedantic users?
> >
> >Eh? Try it.
> >
> >You only get warnings if your compiler is running in c89 or ansi mode,
> >which went 'overboard' a long time ago.
> Bare -Wpedantic -Werror fails with this.

You need -std=c99 on older compilers.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Artemy Kovalyov June 12, 2017, 9:31 p.m. UTC | #6
On 13/06/2017 00:18, Jason Gunthorpe wrote:
> On Tue, Jun 13, 2017 at 12:09:29AM +0300, Artemy Kovalyov wrote:
>>
>>
>> On 12/06/2017 23:50, Jason Gunthorpe wrote:
>>> On Mon, Jun 12, 2017 at 11:38:09PM +0300, Artemy Kovalyov wrote:
>>>>
>>>>
>>>> On 12/06/2017 19:38, Jason Gunthorpe wrote:
>>>>> On Mon, Jun 12, 2017 at 09:42:44AM +0300, Artemy Kovalyov wrote:
>>>>>> enum ibv_srq_type {
>>>>>> 	IBV_SRQT_BASIC,
>>>>>> -	IBV_SRQT_XRC
>>>>>> +	IBV_SRQT_XRC,
>>>>>> +	IBV_SRQT_TAG_MATCHING
>>>>>> };
>>>>>
>>>>> Please put trailing commas on all these enum changes in all patches
>>>>
>>>> So do we drop overboard all -Wpedantic users?
>>>
>>> Eh? Try it.
>>>
>>> You only get warnings if your compiler is running in c89 or ansi mode,
>>> which went 'overboard' a long time ago.
>> Bare -Wpedantic -Werror fails with this.
>
> You need -std=c99 on older compilers.

That was my point - implying new standards' ubiquity we narrowing 
compatibility.
I not insist, just want to clarify whether this code standard was chosen 
for the project.

>
> Jason
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jason Gunthorpe June 12, 2017, 9:40 p.m. UTC | #7
On Tue, Jun 13, 2017 at 12:31:11AM +0300, Artemy Kovalyov wrote:

> I not insist, just want to clarify whether this code standard was
> chosen for the project.

It is, and we already have things that are not C89 in the public
headers for some time.

If someone wishes to support C89 then they will need to make a patch
and travis support, otherwise please continue to follow the existing
examples of adding the trailing, as other new cases do.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Artemy Kovalyov June 12, 2017, 9:45 p.m. UTC | #8
On 13/06/2017 00:40, Jason Gunthorpe wrote:
> On Tue, Jun 13, 2017 at 12:31:11AM +0300, Artemy Kovalyov wrote:
>
>> I not insist, just want to clarify whether this code standard was
>> chosen for the project.
>
> It is, and we already have things that are not C89 in the public
> headers for some time.
>
> If someone wishes to support C89 then they will need to make a patch
> and travis support, otherwise please continue to follow the existing
> examples of adding the trailing, as other new cases do.

Legit.

>
> Jason
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/libibverbs/verbs.h b/libibverbs/verbs.h
index 43fa386..120471a 100644
--- a/libibverbs/verbs.h
+++ b/libibverbs/verbs.h
@@ -666,7 +666,8 @@  struct ibv_srq_init_attr {
 
 enum ibv_srq_type {
 	IBV_SRQT_BASIC,
-	IBV_SRQT_XRC
+	IBV_SRQT_XRC,
+	IBV_SRQT_TAG_MATCHING
 };
 
 enum ibv_srq_init_attr_mask {
@@ -674,7 +675,13 @@  enum ibv_srq_init_attr_mask {
 	IBV_SRQ_INIT_ATTR_PD		= 1 << 1,
 	IBV_SRQ_INIT_ATTR_XRCD		= 1 << 2,
 	IBV_SRQ_INIT_ATTR_CQ		= 1 << 3,
-	IBV_SRQ_INIT_ATTR_RESERVED	= 1 << 4
+	IBV_SRQ_INIT_ATTR_TAG_MATCHING  = 1 << 4,
+	IBV_SRQ_INIT_ATTR_RESERVED	= 1 << 5
+};
+
+struct ibv_tm_cap {
+	uint32_t		max_num_tags;
+	uint32_t		max_ops;
 };
 
 struct ibv_srq_init_attr_ex {
@@ -686,6 +693,7 @@  struct ibv_srq_init_attr_ex {
 	struct ibv_pd	       *pd;
 	struct ibv_xrcd	       *xrcd;
 	struct ibv_cq	       *cq;
+	struct ibv_tm_cap	tm_cap;
 };
 
 enum ibv_wq_type {