Subject: Re: [PATCH] RDMA/mana_ib: Use v2 version of cfg_rx_steer_req to enable RX coalescing

From: Leon Romanovsky <[email-masked]>
Date: Tue, 9 May 2023 10:30:34 +0300

On Mon, May 08, 2023 at 02:45:44PM +0000, Haiyang Zhang wrote:
> 
> 
> > -----Original Message-----
> > From: Leon Romanovsky <[email-masked]>
> > Sent: Monday, May 8, 2023 2:10 AM
> > To: Haiyang Zhang <[email-masked]>
> > Cc: Long Li <[email-masked]>; Jason Gunthorpe <[email-masked]>; Ajay
> > Sharma <[email-masked]>; Dexuan Cui <[email-masked]>;
> > KY Srinivasan <[email-masked]>; Wei Liu <[email-masked]>; David S.
> > Miller <[email-masked]>; Eric Dumazet <[email-masked]>;
> > Jakub Kicinski <[email-masked]>; Paolo Abeni <[email-masked]>; linux-
> > [email-masked]; [email-masked];
> > [email-masked]; [email-masked]
> > Subject: Re: [PATCH] RDMA/mana_ib: Use v2 version of cfg_rx_steer_req to
> > enable RX coalescing
> > 
> > On Sun, May 07, 2023 at 09:39:27PM +0000, Haiyang Zhang wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Leon Romanovsky <[email-masked]>
> > > > Sent: Sunday, May 7, 2023 4:11 AM
> > > > To: Long Li <[email-masked]>
> > > > Cc: Jason Gunthorpe <[email-masked]>; Ajay Sharma
> > > > <[email-masked]>; Dexuan Cui <[email-masked]>; KY
> > > > Srinivasan <[email-masked]>; Haiyang Zhang
> > <[email-masked]>;
> > > > Wei Liu <[email-masked]>; David S. Miller <[email-masked]>; Eric
> > > > Dumazet <[email-masked]>; Jakub Kicinski <[email-masked]>;
> > Paolo
> > > > Abeni <[email-masked]>; [email-masked]; linux-
> > > > [email-masked]; [email-masked]; linux-
> > > > [email-masked]
> > > > Subject: Re: [PATCH] RDMA/mana_ib: Use v2 version of cfg_rx_steer_req
> > to
> > > > enable RX coalescing
> > > >
> > > > On Fri, May 05, 2023 at 11:51:48AM -0700, [email-masked]
> > > > wrote:
> > > > > From: Long Li <[email-masked]>
> > > > >
> > > > > With RX coalescing, one CQE entry can be used to indicate multiple
> > packets
> > > > > on the receive queue. This saves processing time and PCI bandwidth over
> > > > > the CQ.
> > > > >
> > > > > Signed-off-by: Long Li <[email-masked]>
> > > > > ---
> > > > >  drivers/infiniband/hw/mana/qp.c |  5 ++++-
> > > > >  include/net/mana/mana.h         | 17 +++++++++++++++++
> > > > >  2 files changed, 21 insertions(+), 1 deletion(-)
> > > >
> > > > Why didn't you change mana_cfg_vport_steering() too?
> > >
> > > The mana_cfg_vport_steering() is for mana_en (Enthernet) driver, not the
> > > mana_ib driver.
> > >
> > > The changes for mana_en will be done in a separate patch together with
> > > changes for mana_en RX code patch to support multiple packets / CQE.
> > 
> > I'm aware of the difference between mana_en and mana_ib.
> > 
> > The change you proposed doesn't depend on "support multiple packets /
> > CQE."
> > and works perfectly with one packet/CQE also, does it?
> 
> No.
> If we add the following setting to the mana_en / mana_cfg_vport_steering(),
> the NIC may put multiple packets in one CQE, so we need to have the changes
> for mana_en RX code path to support multiple packets / CQE.
> +	req->cqe_coalescing_enable = true;

You can leave "cqe_coalescing_enable = false" for ETH and still reuse
your new v2 struct.

H> 
> So we plan to set this cqe_coalescing_enable, and the changes for mana_en 
> RX code path to support multiple packets / CQE in another patch.

And how does it work with IB without changing anything except this
proposed patch?

Thanks

> Thanks,
> - Haiyang