Thread (17 messages) 17 messages, 3 authors, 2021-12-03

Re: [PATCH net-next v3 3/4] net: ocelot: pre-compute injection frame header content

From: Clément Léger <clement.leger@bootlin.com>
Date: 2021-11-26 17:59:43
Also in: lkml, netdev

Le Fri, 26 Nov 2021 17:54:55 +0000,
Vladimir Oltean [off-list ref] a écrit :
On Fri, Nov 26, 2021 at 06:27:38PM +0100, Clément Léger wrote:
quoted
IFH preparation can take quite some time on slow processors (up to 5% in
a iperf3 test for instance). In order to reduce the cost of this
preparation, pre-compute IFH since most of the parameters are fixed per
port. Only rew_op and vlan tag will be set when sending if different
than 0. This allows to remove entirely the calls to packing() with basic
usage. In the same time, export this function that will be used by FDMA.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---  
If you would move this injection frame header template into struct
ocelot_port_private instead of struct ocelot_port, I would not have
anything against it. Because struct ocelot_port is common with DSA,
whereas struct ocelot_port_private isn't.

Also, as things stand, all switch drivers call ocelot_init_port, but not
all supported switches have the same IFH format. See seville_xmit() ->
seville_ifh_set_dest(). So even though DSA does not use this for
anything, it wouldn't even contain valid information even if it wanted
to. So maybe you can move this initialization to some place isolated to
vsc7514.
Acked, this makes sense, I will do this.

-- 
Clément Léger,
Embedded Linux and Kernel engineer at Bootlin
https://bootlin.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help