Re: [ofa-general] [PATCH 2.6.30] RDMA/cxgb3: Remove modulo math.

From: David Miller
Date: Tue Feb 10 2009 - 20:07:58 EST


From: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 10 Feb 2009 19:03:52 -0600

> Roland Dreier wrote:
> > I'll roll this into the offending patch (that is in -next).
> >
> > But:
> >
> > > - wqe->recv.sgl[i].to = cpu_to_be64(((u32) wr->sg_list[i].addr) %
> > > - (1UL << (12 + page_size[i])));
> > > + wqe->recv.sgl[i].to = cpu_to_be64(((u64) wr->sg_list[i].addr) &
> > > + ((1UL << (12 + page_size[i]))-1));
> >
> > Is this required? Strength reduction optimization should do this
> > automatically (and the code has been there for quite a while, so
> > obviously it isn't causing problems)
> >
> > - R.
> >
> Ok.

GCC won't optimize that modulus the way you expect, try for yourself
and look at the assembler if you don't believe me. :-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/