> Subject: Re: [PATCH] RDMA/irdma: Slightly optimize > irdma_form_ah_cm_frame() > > On Thu, Feb 02, 2023 at 09:23:24PM +0100, Christophe JAILLET wrote: > > There is no need to zero 'pktsize' bytes of 'buf', only the header > > needs to be cleared, to be safe. > > All the other bytes are already written with some memcpy() at the end > > of the function. > > > > Doing so also gives the opportunity to the compiler to avoid the > > memset() call. It can be inlined now that the length is known as compile time. > > > > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> > > --- > > Just in case, here is the diff of what is generated by gcc 11.3.0 > > before and after the patch. > > > > .L736: > > -# drivers/infiniband/hw/irdma/cm.c:340: memset(buf, 0, pktsize); > > +# drivers/infiniband/hw/irdma/cm.c:340: memset(buf, 0, sizeof(*tcph)); > > call __sanitizer_cov_trace_pc # > > - xorl %esi, %esi # > > - movzwl %r13w, %edx # _194, __fortify_size > > - movq %rbp, %rdi # buf, > > - call memset # > > - leaq 104(%r12), %rax #, _259 > > + movl $0, 16(%rbp) #, MEM <char[1:20]> [(void *)buf_114] > > + leaq 104(%r12), %rax #, _295 > > +# drivers/infiniband/hw/irdma/cm.c:342: sqbuf->totallen = pktsize; > > + movzwl %r13w, %r13d # _192, _192 > > +# drivers/infiniband/hw/irdma/cm.c:340: memset(buf, 0, sizeof(*tcph)); > > + movq $0, 0(%rbp) #, MEM <char[1:20]> [(void *)buf_114] > > +# drivers/infiniband/hw/irdma/cm.c:342: sqbuf->totallen = pktsize; > > + movq %rax, %rdi # _295, > > +# drivers/infiniband/hw/irdma/cm.c:340: memset(buf, 0, sizeof(*tcph)); > > + movq $0, 8(%rbp) #, MEM <char[1:20]> [(void *)buf_114] > > + movq %rax, 64(%rsp) # _295, %sfp > > # drivers/infiniband/hw/irdma/cm.c:342: sqbuf->totallen = pktsize; > > --- > > drivers/infiniband/hw/irdma/cm.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > Shiraz?? > Sorry for the delay as I didn't see this earlier. Reviewed-by: Shiraz Saleem <shiraz.saleem@xxxxxxxxx>