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

Haiyang Zhang
2023-05-08T14:45:53Z

> -----Original Message-----
> From: Leon Romanovsky <leon@kernel.org>
> Sent: Monday, May 8, 2023 2:10 AM
> To: Haiyang Zhang <haiyangz@microsoft.com>
> Cc: Long Li <longli@microsoft.com>; Jason Gunthorpe <jgg@ziepe.ca>; Ajay
> Sharma <sharmaajay@microsoft.com>; Dexuan Cui <decui@microsoft.com>;
> KY Srinivasan <kys@microsoft.com>; Wei Liu <wei.liu@kernel.org>; David S.
> Miller <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>;
> Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; linux-
> rdma@vger.kernel.org; linux-hyperv@vger.kernel.org;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> 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 <leon@kernel.org>
> > > Sent: Sunday, May 7, 2023 4:11 AM
> > > To: Long Li <longli@microsoft.com>
> > > Cc: Jason Gunthorpe <jgg@ziepe.ca>; Ajay Sharma
> > > <sharmaajay@microsoft.com>; Dexuan Cui <decui@microsoft.com>; KY
> > > Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>;
> > > Wei Liu <wei.liu@kernel.org>; David S. Miller <davem@davemloft.net>; Eric
> > > Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>;
> Paolo
> > > Abeni <pabeni@redhat.com>; linux-rdma@vger.kernel.org; linux-
> > > hyperv@vger.kernel.org; netdev@vger.kernel.org; linux-
> > > kernel@vger.kernel.org
> > > 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, longli@linuxonhyperv.com
> > > wrote:
> > > > From: Long Li <longli@microsoft.com>
> > > >
> > > > 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 <longli@microsoft.com>
> > > > ---
> > > > 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;

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.

Thanks,
- Haiyang