Thread (6 messages) read the whole thread 6 messages, 3 authors, 2020-01-08

Re: [PATCH net-next] net: dsa: Remove indirect function call for flow dissection

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2020-01-08 18:03:46
Also in: linux-arm-kernel, linux-mediatek, lkml

On 1/3/20 1:28 PM, Vladimir Oltean wrote:
On Fri, 3 Jan 2020 at 22:50, Florian Fainelli [off-list ref] wrote:
quoted
The call path is the following on TX (e.g.: when you run a DHCP client),
Oh, it gets called on TX too, ok.
In that case, static proto_off information won't work for asymmetric
taggers such as ocelot which may have an independently configurable
prefix length on RX and TX.
I want to get rid of the RX tag prefix in ocelot though, but just saying.
quoted
I don't think your formula works for EDSA which has an EtherType, but
Why doesn't it work with edsa?
It would, my bad.
quoted
this would probably work for all tags we currently support except trailer.

proto = (__be16 *)(skb->data)[overhead / 2 - 1];
I wasn't suggesting to do this exact calculation in flow_dissector.c,
but rather to pre-populate proto_off with a value statically derived
from it on a piece of paper, with the trailer exception where it would
be -2 in bytes or -1 in shorts, but nonetheless a negative and valid
value.
With the trailer, the EtherType is actually at the expected location,
that is 12 bytes from the beginning of the Ethernet frame, so we can
simplify things even more.
quoted
I don't think anyone except Alexander did serious investigation this.
For now, what I am interested in is reducing the amount of technical
debt and expensive function calls.
Does the change bring any measurable improvement?
I did not implement flow dissection for Broadcom tags largely because it
did not show up as a performance problem with the different customers
but I will try to collect some numbers. At any rate, the patch is not
meant to be a performance improvement (though it might provide some
improvements) but ease maintenance and make it more straight forward for
future protocols to automatically gain dissection without having to
provide a function pointer.
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help