Re: [PATCH v2 3/6] net: ocelot: pre-compute injection frame header content

From: Vladimir Oltean
Date: Mon Nov 15 2021 - 09:34:26 EST


On Mon, Nov 15, 2021 at 03:06:20PM +0100, Clément Léger wrote:
> Le Mon, 15 Nov 2021 06:08:00 -0800,
> Jakub Kicinski <kuba@xxxxxxxxxx> a écrit :
>
> > On Mon, 15 Nov 2021 11:13:44 +0100 Clément Léger wrote:
> > > Test on standard packets with UDP (iperf3 -t 100 -l 1460 -u -b 0 -c *)
> > > - With pre-computed header: UDP TX: 33Mbit/s
> > > - Without UDP TX: 31Mbit/s
> > > -> 6.5% improvement
> > >
> > > Test on small packets with UDP (iperf3 -t 100 -l 700 -u -b 0 -c *)
> > > - With pre-computed header: UDP TX: 15.8Mbit/s
> > > - Without UDP TX: 16.4Mbit/s
> > > -> 4.3% improvement
> >
> > Something's wrong with these numbers or I'm missing context.
> > You say improvement in both cases yet in the latter case the
> > new number is lower?
>
> You are right Jakub, I swapped the last two results,
>
> Test on small packets with UDP (iperf3 -t 100 -l 700 -u -b 0 -c *)
> - With pre-computed header: UDP TX: 16.4Mbit/s
> - Without UDP TX: 15.8Mbit/s
> -> 4.3% improvement

Even in reverse, something still seems wrong with the numbers.
My DSPI controller can transfer at a higher data rate than that.
Where is the rest of the time spent? Computing checksums?