public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit
@ 2015-01-16 14:39 Rasmus Villemoes
  2015-01-16 14:39 ` [PATCH 2/2] infiniband: Use unsigned for bit index Rasmus Villemoes
       [not found] ` <1421419196-4659-1-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
  0 siblings, 2 replies; 7+ messages in thread
From: Rasmus Villemoes @ 2015-01-16 14:39 UTC (permalink / raw)
  To: Roland Dreier, Sean Hefty, Hal Rosenstock
  Cc: Rasmus Villemoes, linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

gcc emits a surprising amount of code in order to flip a bit. One
would think that a single instruction is enough.

$ scripts/bloat-o-meter /tmp/ocrdma_verbs.o drivers/infiniband/hw/ocrdma/ocrdma_verbs.o
add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-142 (-142)
function                                     old     new   delta
ocrdma_post_srq_recv                         498     460     -38
ocrdma_poll_cq                              2010    1962     -48
ocrdma_discard_cqes                          495     439     -56

All three calls of ocrdma_srq_toggle_bit happen within spinlocks, so
saving a few useless instructions might be worthwhile.

Signed-off-by: Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
---
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index fb8d8c4dfbb9..eff11e6c6183 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -1484,10 +1484,7 @@ static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, int idx)
 	int i = idx / 32;
 	unsigned int mask = (1 << (idx % 32));
 
-	if (srq->idx_bit_fields[i] & mask)
-		srq->idx_bit_fields[i] &= ~mask;
-	else
-		srq->idx_bit_fields[i] |= mask;
+	srq->idx_bit_fields[i] ^= mask;
 }
 
 static int ocrdma_hwq_free_cnt(struct ocrdma_qp_hwq_info *q)
-- 
2.1.3

--
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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] infiniband: Use unsigned for bit index
  2015-01-16 14:39 [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit Rasmus Villemoes
@ 2015-01-16 14:39 ` Rasmus Villemoes
       [not found]   ` <1421419196-4659-2-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
       [not found] ` <1421419196-4659-1-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
  1 sibling, 1 reply; 7+ messages in thread
From: Rasmus Villemoes @ 2015-01-16 14:39 UTC (permalink / raw)
  To: Roland Dreier, Sean Hefty, Hal Rosenstock
  Cc: Rasmus Villemoes, linux-rdma, linux-kernel

In the expressions idx/32 and idx%32, both idx and 32 have signed
type, and unfortunately the C standard prescribes rounding to 0, so
unless gcc can prove that idx is non-negative, these cannot be
implemented as simple shift respectively mask operations. Help gcc by
changing the type of idx to unsigned - this cuts another few
instructions from the generated code.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index eff11e6c6183..61c3047f5170 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -1479,10 +1479,10 @@ mbx_err:
 	return status;
 }
 
-static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, int idx)
+static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, unsigned int idx)
 {
-	int i = idx / 32;
-	unsigned int mask = (1 << (idx % 32));
+	unsigned int i = idx / 32;
+	u32 mask = (1U << (idx % 32));
 
 	srq->idx_bit_fields[i] ^= mask;
 }
-- 
2.1.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit
       [not found] ` <1421419196-4659-1-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
@ 2015-01-30 23:00   ` Rasmus Villemoes
       [not found]     ` <87twz7ho25.fsf-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
  2015-02-02 12:04   ` Selvin Xavier
  1 sibling, 1 reply; 7+ messages in thread
From: Rasmus Villemoes @ 2015-01-30 23:00 UTC (permalink / raw)
  To: Roland Dreier
  Cc: Sean Hefty, Hal Rosenstock, linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

ping

On Fri, Jan 16 2015, Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org> wrote:

> gcc emits a surprising amount of code in order to flip a bit. One
> would think that a single instruction is enough.
>
> $ scripts/bloat-o-meter /tmp/ocrdma_verbs.o drivers/infiniband/hw/ocrdma/ocrdma_verbs.o
> add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-142 (-142)
> function                                     old     new   delta
> ocrdma_post_srq_recv                         498     460     -38
> ocrdma_poll_cq                              2010    1962     -48
> ocrdma_discard_cqes                          495     439     -56
>
> All three calls of ocrdma_srq_toggle_bit happen within spinlocks, so
> saving a few useless instructions might be worthwhile.
>
> Signed-off-by: Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
> ---
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> index fb8d8c4dfbb9..eff11e6c6183 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> @@ -1484,10 +1484,7 @@ static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, int idx)
>  	int i = idx / 32;
>  	unsigned int mask = (1 << (idx % 32));
>  
> -	if (srq->idx_bit_fields[i] & mask)
> -		srq->idx_bit_fields[i] &= ~mask;
> -	else
> -		srq->idx_bit_fields[i] |= mask;
> +	srq->idx_bit_fields[i] ^= mask;
>  }
>  
>  static int ocrdma_hwq_free_cnt(struct ocrdma_qp_hwq_info *q)
--
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit
       [not found]     ` <87twz7ho25.fsf-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
@ 2015-01-31 11:07       ` Yann Droneaud
       [not found]         ` <1422702466.3030.4.camel-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Yann Droneaud @ 2015-01-31 11:07 UTC (permalink / raw)
  To: Rasmus Villemoes
  Cc: Roland Dreier, Sean Hefty, Hal Rosenstock,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Devesh Sharma, Selvin Xavier,
	Mitesh Ahuja

Hi,

Le samedi 31 janvier 2015 à 00:00 +0100, Rasmus Villemoes a écrit :
> ping
> 

As you're fixing ocrdma driver, I think you might want to find people
@emulex.com to review your patches.

BTW, there's no MAINTAINERS entry for ocrdma driver ... which is a pity.

> On Fri, Jan 16 2015, Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org> wrote:
> 
> > gcc emits a surprising amount of code in order to flip a bit. One
> > would think that a single instruction is enough.
> >
> > $ scripts/bloat-o-meter /tmp/ocrdma_verbs.o drivers/infiniband/hw/ocrdma/ocrdma_verbs.o
> > add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-142 (-142)
> > function                                     old     new   delta
> > ocrdma_post_srq_recv                         498     460     -38
> > ocrdma_poll_cq                              2010    1962     -48
> > ocrdma_discard_cqes                          495     439     -56
> >
> > All three calls of ocrdma_srq_toggle_bit happen within spinlocks, so
> > saving a few useless instructions might be worthwhile.
> >
> > Signed-off-by: Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
> > ---
> >  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +----
> >  1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > index fb8d8c4dfbb9..eff11e6c6183 100644
> > --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > @@ -1484,10 +1484,7 @@ static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, int idx)
> >  	int i = idx / 32;
> >  	unsigned int mask = (1 << (idx % 32));
> >  
> > -	if (srq->idx_bit_fields[i] & mask)
> > -		srq->idx_bit_fields[i] &= ~mask;
> > -	else
> > -		srq->idx_bit_fields[i] |= mask;
> > +	srq->idx_bit_fields[i] ^= mask;
> >  }
> >  
> >  static int ocrdma_hwq_free_cnt(struct ocrdma_qp_hwq_info *q)
> --

Regards.

-- 
Yann Droneaud
OPTEYA



--
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 2/2] infiniband: Use unsigned for bit index
       [not found]   ` <1421419196-4659-2-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
@ 2015-02-02 12:03     ` Selvin Xavier
  0 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2015-02-02 12:03 UTC (permalink / raw)
  To: Rasmus Villemoes, Roland Dreier, Sean Hefty, Hal Rosenstock
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Acked-by: Selvin Xavier <selvin.xavier-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>

Thanks!

> -----Original Message-----
> From: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-rdma-
> owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org] On Behalf Of Rasmus Villemoes
> Sent: Friday, January 16, 2015 8:10 PM
> To: Roland Dreier; Sean Hefty; Hal Rosenstock
> Cc: Rasmus Villemoes; linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-
> kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: [PATCH 2/2] infiniband: Use unsigned for bit index
> 
> In the expressions idx/32 and idx%32, both idx and 32 have signed type, and
> unfortunately the C standard prescribes rounding to 0, so unless gcc can
> prove that idx is non-negative, these cannot be implemented as simple shift
> respectively mask operations. Help gcc by changing the type of idx to
> unsigned - this cuts another few instructions from the generated code.
> 
> Signed-off-by: Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
> ---
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> index eff11e6c6183..61c3047f5170 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> @@ -1479,10 +1479,10 @@ mbx_err:
>  	return status;
>  }
> 
> -static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, int idx)
> +static void ocrdma_srq_toggle_bit(struct ocrdma_srq *srq, unsigned int
> +idx)
>  {
> -	int i = idx / 32;
> -	unsigned int mask = (1 << (idx % 32));
> +	unsigned int i = idx / 32;
> +	u32 mask = (1U << (idx % 32));
> 
>  	srq->idx_bit_fields[i] ^= mask;
>  }
> --
> 2.1.3
> 
> --
> 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
--
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit
       [not found] ` <1421419196-4659-1-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
  2015-01-30 23:00   ` [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit Rasmus Villemoes
@ 2015-02-02 12:04   ` Selvin Xavier
  1 sibling, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2015-02-02 12:04 UTC (permalink / raw)
  To: Rasmus Villemoes, Roland Dreier, Sean Hefty, Hal Rosenstock
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Acked-by: Selvin Xavier <selvin.xavier-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>

Thanks!

> -----Original Message-----
> From: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-rdma-
> owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org] On Behalf Of Rasmus Villemoes
> Sent: Friday, January 16, 2015 8:10 PM
> To: Roland Dreier; Sean Hefty; Hal Rosenstock
> Cc: Rasmus Villemoes; linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-
> kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: [PATCH 1/2] infiniband: Help gcc generate better code for
> ocrdma_srq_toggle_bit
> 
> gcc emits a surprising amount of code in order to flip a bit. One would think
> that a single instruction is enough.
> 
> $ scripts/bloat-o-meter /tmp/ocrdma_verbs.o
> drivers/infiniband/hw/ocrdma/ocrdma_verbs.o
> add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-142 (-142)
> function                                     old     new   delta
> ocrdma_post_srq_recv                         498     460     -38
> ocrdma_poll_cq                              2010    1962     -48
> ocrdma_discard_cqes                          495     439     -56
> 
> All three calls of ocrdma_srq_toggle_bit happen within spinlocks, so saving a
> few useless instructions might be worthwhile.
> 
> Signed-off-by: Rasmus Villemoes <linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
> ---
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> index fb8d8c4dfbb9..eff11e6c6183 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> @@ -1484,10 +1484,7 @@ static void ocrdma_srq_toggle_bit(struct
> ocrdma_srq *srq, int idx)
>  	int i = idx / 32;
>  	unsigned int mask = (1 << (idx % 32));
> 
> -	if (srq->idx_bit_fields[i] & mask)
> -		srq->idx_bit_fields[i] &= ~mask;
> -	else
> -		srq->idx_bit_fields[i] |= mask;
> +	srq->idx_bit_fields[i] ^= mask;
>  }
> 
>  static int ocrdma_hwq_free_cnt(struct ocrdma_qp_hwq_info *q)
> --
> 2.1.3
> 
> --
> 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
--
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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit
       [not found]         ` <1422702466.3030.4.camel-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
@ 2015-02-02 12:58           ` Selvin Xavier
  0 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2015-02-02 12:58 UTC (permalink / raw)
  To: Yann Droneaud, Rasmus Villemoes
  Cc: Roland Dreier, Sean Hefty, Hal Rosenstock,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Devesh Sharma, Mitesh Ahuja

Thank you Yann Droneaud for forwarding this mail.

We will add  an entry for ocrdma driver in MAINTAINERS file.

Thanks,
Selvin Xavier

> -----Original Message-----
> From: Yann Droneaud [mailto:ydroneaud@opteya.com]
> Sent: Saturday, January 31, 2015 4:38 PM
> To: Rasmus Villemoes
> Cc: Roland Dreier; Sean Hefty; Hal Rosenstock; linux-rdma@vger.kernel.org;
> linux-kernel@vger.kernel.org; Devesh Sharma; Selvin Xavier; Mitesh Ahuja
> Subject: Re: [PATCH 1/2] infiniband: Help gcc generate better code for
> ocrdma_srq_toggle_bit
> 
> Hi,
> 
> Le samedi 31 janvier 2015 à 00:00 +0100, Rasmus Villemoes a écrit :
> > ping
> >
> 
> As you're fixing ocrdma driver, I think you might want to find people
> @emulex.com to review your patches.
> 
> BTW, there's no MAINTAINERS entry for ocrdma driver ... which is a pity.
> 
> > On Fri, Jan 16 2015, Rasmus Villemoes <linux@rasmusvillemoes.dk> wrote:
> >
> > > gcc emits a surprising amount of code in order to flip a bit. One
> > > would think that a single instruction is enough.
> > >
> > > $ scripts/bloat-o-meter /tmp/ocrdma_verbs.o
> > > drivers/infiniband/hw/ocrdma/ocrdma_verbs.o
> > > add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-142 (-142)
> > > function                                     old     new   delta
> > > ocrdma_post_srq_recv                         498     460     -38
> > > ocrdma_poll_cq                              2010    1962     -48
> > > ocrdma_discard_cqes                          495     439     -56
> > >
> > > All three calls of ocrdma_srq_toggle_bit happen within spinlocks, so
> > > saving a few useless instructions might be worthwhile.
> > >
> > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> > > ---
> > >  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +----
> > >  1 file changed, 1 insertion(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > > b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > > index fb8d8c4dfbb9..eff11e6c6183 100644
> > > --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > > +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> > > @@ -1484,10 +1484,7 @@ static void ocrdma_srq_toggle_bit(struct
> ocrdma_srq *srq, int idx)
> > >  	int i = idx / 32;
> > >  	unsigned int mask = (1 << (idx % 32));
> > >
> > > -	if (srq->idx_bit_fields[i] & mask)
> > > -		srq->idx_bit_fields[i] &= ~mask;
> > > -	else
> > > -		srq->idx_bit_fields[i] |= mask;
> > > +	srq->idx_bit_fields[i] ^= mask;
> > >  }
> > >
> > >  static int ocrdma_hwq_free_cnt(struct ocrdma_qp_hwq_info *q)
> > --
> 
> Regards.
> 
> --
> Yann Droneaud
> OPTEYA
> 
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-02-02 12:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-16 14:39 [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit Rasmus Villemoes
2015-01-16 14:39 ` [PATCH 2/2] infiniband: Use unsigned for bit index Rasmus Villemoes
     [not found]   ` <1421419196-4659-2-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
2015-02-02 12:03     ` Selvin Xavier
     [not found] ` <1421419196-4659-1-git-send-email-linux-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
2015-01-30 23:00   ` [PATCH 1/2] infiniband: Help gcc generate better code for ocrdma_srq_toggle_bit Rasmus Villemoes
     [not found]     ` <87twz7ho25.fsf-qQsb+v5E8BnlAoU/VqSP6n9LOBIZ5rWg@public.gmane.org>
2015-01-31 11:07       ` Yann Droneaud
     [not found]         ` <1422702466.3030.4.camel-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
2015-02-02 12:58           ` Selvin Xavier
2015-02-02 12:04   ` Selvin Xavier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox