[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+sq2Cd12c29AT6BPk0O4BTw+JA+ZOt7o-kWJKWfq7ZN7fTnzQ@mail.gmail.com>
Date: Mon, 27 Jan 2020 18:13:45 +0530
From: Sunil Kovvuri <sunil.kovvuri@...il.com>
To: Dave Taht <dave.taht@...il.com>
Cc: Linux Kernel Network Developers <netdev@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kubakici@...pl>,
Michal Kubeček <mkubecek@...e.cz>,
Maciej Fijalkowski <maciej.fijalkowski@...el.com>,
Sunil Goutham <sgoutham@...vell.com>,
Geetha sowjanya <gakula@...vell.com>
Subject: Re: [PATCH v5 04/17] octeontx2-pf: Initialize and config queues
On Mon, Jan 27, 2020 at 12:30 AM Dave Taht <dave.taht@...il.com> wrote:
>
> I guess my question generally is, what form of RED is implemented in
> the hardware?
>
> http://mirrors.bufferbloat.net/~jg/RelevantPapers/Red_in_a_different_light.pdf
>
> > +/* RED and drop levels of CQ on packet reception.
> > + * For CQ level is measure of emptiness ( 0x0 = full, 255 = empty).
> > + */
> > +#define RQ_PASS_LVL_CQ(skid, qsize) ((((skid) + 16) * 256) / (qsize))
> > +#define RQ_DROP_LVL_CQ(skid, qsize) (((skid) * 256) / (qsize))
> > +
> > +/* RED and drop levels of AURA for packet reception.
> > + * For AURA level is measure of fullness (0x0 = empty, 255 = full).
> > + * Eg: For RQ length 1K, for pass/drop level 204/230.
> > + * RED accepts pkts if free pointers > 102 & <= 205.
> > + * Drops pkts if free pointers < 102.
> > + */
> > +#define RQ_PASS_LVL_AURA (255 - ((95 * 256) / 100)) /* RED when 95% is full */
> > +#define RQ_DROP_LVL_AURA (255 - ((99 * 256) / 100)) /* Drop when 99% is full */
>
> I guess my question generally is, what form of RED is implemented in
> the hardware?
Periodically or per packet (based on configuration) a average level of
receive side resources
(ie number of free receive buffer pointers, number of unused receive
packet notification descriptors)
is calculated and compared against configured values to determine
whether to do RED dropping or not.
>
> (what's aura?)
>
Aura is a HW term, this maintains receive buffer pointers.
When a packet is received HW allocates a pointer from Aura and does a
DMA to it and
then prepares a descriptor and adds to CQ (completion queue) and
notifies software.
Thanks,
Sunil.
Powered by blists - more mailing lists