[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALHRZupNJC7EJAir+0iN6p4UGR0oU0by=N2Hf+zWaj2U8RrE4A@mail.gmail.com>
Date: Wed, 6 Oct 2021 12:29:51 +0530
From: sundeep subbaraya <sundeep.lkml@...il.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Subbaraya Sundeep <sbhatta@...vell.com>,
David Miller <davem@...emloft.net>, netdev@...r.kernel.org,
Sunil Kovvuri Goutham <sgoutham@...vell.com>,
hariprasad <hkelam@...vell.com>,
Geetha sowjanya <gakula@...vell.com>
Subject: Re: [net-next PATCH 2/3] octeontx2-pf: Add devlink param to vary cqe size
Hi Jakub,
On Wed, Oct 6, 2021 at 6:46 AM Jakub Kicinski <kuba@...nel.org> wrote:
>
> On Tue, 5 Oct 2021 22:45:35 +0530 Subbaraya Sundeep wrote:
> > Completion Queue Entry(CQE) is a descriptor written
> > by hardware to notify software about the send and
> > receive completion status. The CQE can be of size
> > 128 or 512 bytes. A 512 bytes CQE can hold more receive
> > fragments pointers compared to 128 bytes CQE. This
> > patch adds devlink param to change CQE descriptor
> > size.
>
> nak, this belongs in ethtool -g
We do use ethtool -G for setting the number of receive buffers to
allocate from the kernel and give those pointers to hardware memory pool(NPA).
This patch is to specify hardware the completion queue descriptor size
it needs to use
while writing to memory. The CQE consists of buffer pointer/packet addresses.
Say a large packet is received then hardware splits that large packet
into buffers
and writes only one CQE consisting of all the buffer pointers which
makes a packet.
If hardware is configured to use 128 byte CQE then only 6 pointers can
be accomodated
and rest of packet data is truncated. If CQE is configured as 512 byte
then 42 pointers
can be accomodated hence large packets can be received.
ethtool -G can be used to change number of packets a ring can hold but
not number
of fragments a single packet can use. Since this is hardware related
am using devlink.
CN9XX series hardware max packet length is 9212 and a 128 byte CQE (6
buffer pointers)
with 2K receive buffer was sufficient to receive 9212 packet (2k * 6 =
12K). CN10XX series
max receive length is 65535 so 128 byte CQE was not enough.
Thanks,
Sundeep
Powered by blists - more mailing lists