On Sun, Sep 18, 2016 at 07:40:29PM -0500, Steve Wise wrote: > > On Fri, Sep 16, 2016 at 07:54:52AM -0700, Steve Wise wrote: > > > When processing a REG_MR work request, if fw supports the > > > FW_RI_NSMR_TPTE_WR work request, and if the page list for this > > > registration is <= 2 pages, and the current state of the mr is INVALID, > > > then use FW_RI_NSMR_TPTE_WR to pass down a fully populated TPTE for > > FW > > > to write. This avoids FW having to do an async read of the TPTE > blocking > > > the SQ until the read completes. > > > > > > To know if the current MR state is INVALID or not, iw_cxgb4 must track > the > > > state of each fastreg MR. The c4iw_mr struct state is updated as REG_MR > > > and LOCAL_INV WRs are posted and completed, when a reg_mr is > > destroyed, > > > and when RECV completions are processed that include a local > invalidation. > > > > > > This optimization increases small IO IOPS for both iSER and NVMF. > > > > > > Signed-off-by: Steve Wise <sw...@opengridcomputing.com> > > > --- > > > > <...> > > > > > + struct ib_reg_wr *wr, struct c4iw_mr *mhp, > > > + u8 *len16) > > > +{ > > > + __be64 *p = (__be64 *)fr->pbl; > > > + > > > + fr->r2 = cpu_to_be32(0); > > > > Is there any difference between the line above and "fr->r2 = 0"? > > It makes sparse happy, IIRC...
Strange, but ok :) > > >
signature.asc
Description: PGP signature