On 30/04/15 20:26, Mike Holmes wrote:
On 30 April 2015 at 08:16, Bill Fischofer <[email protected]
<mailto:[email protected]>> wrote:
You've articulated why we don't need API changes for this. Each
implementation is free to optimize its performance as it chooses
without impacting the public APIs. Such performance optimizations
would be expected to evolve as implementations mature. We did an
initial cut at SW parsing and we can improve that by introducing
basic lazy parsing support to accommodate apps that do their own
parsing. At some future point we may do something more
sophisticated as needs dictate. But none of this need impact other
implementations since there are no API impacts.
If we change ODP APIs then we impact every ODP implementation, so we
should only do that if there is a genuine application functional
need for the change. If it's simply a question of performance,
that's a negotiation between the application and the implementation
writer.
In this debate I'd hate to see us miss 1.1.0 next week, we have a real
use case, ODP-OVS needs to disable ODP parsing whilst we bootstrap that
work.
If Zoltan is sure that lazy can work and hence we dont need an API
change right now then I am not worried, but other wise I think we
should accept simple parsing on/off and revise things as we have a use case.
Yes, I think lazy evaluation should work for OVS. It calls
odp_packet_has_error() once but that should be removed.
Zoli
Mike
On Thu, Apr 30, 2015 at 3:34 AM, Savolainen, Petri (Nokia -
FI/Espoo) <[email protected]
<mailto:[email protected]>> wrote:
Lazy parsing is one (SW based) implementation. Another
implementation may use e.g. firmware (or microcode) downloaded
into the packet input HW in interface initialization phase. That
time the implementation can e.g. decide the trade-off between
parser features and HW resource usage. The accelerator would do
all the parsing, no lazy SW parsing needed … but implementation
would know what to download there.____
__ __
Also lazy parsing cannot guess what application is going to ask
and in which order (== when it’s optimal to stop SW parsing).
For example, application calls odp_packet_has_l2(): do you parse
to the end of protocol stack right there or not? You may gain
performance if you do and application asks more flags later on –
or you may have done all the work for nothing, because
application did not ask anything else after that.____
__ __
Things get more complicated when more protocols are added: mpls,
nvgre, l2tp, etc. If your HW/FW implementation can support
everything specified in ODP API - but not at the same time,
which ones you should leave out (for SW parsing)?____
__ __
-Petri____
__ __
__ __
*From:*ext Ola Liljedahl [mailto:[email protected]
<mailto:[email protected]>]
*Sent:* Wednesday, April 29, 2015 8:19 PM
*To:* Zoltan Kiss
*Cc:* Savolainen, Petri (Nokia - FI/Espoo);
[email protected] <mailto:[email protected]>
*Subject:* Re: [lng-odp] [PATCH API-NEXT 4/5] api: packet_io:
added parse mode____
__ __
On 29 April 2015 at 18:14, Zoltan Kiss <[email protected]
<mailto:[email protected]>> wrote:____
It doesn't apply to api-next. Anyway, I've sent an
implementation, see "[API-NEXT PATCH] packet: implement optional
parsing". But if we go with Ola's idea, it won't be needed.____
Actually Bill's idea.____
__ __
If parsing is made lazy, where do you have to check whether to
actually perform the parsing? Hopefully we don't need a check in
every odp_packet_has_xxx() call. If the application is using the
odp_packet_flags.h API, is there some call which always will be
called (and called first) which can trigger the parsing? E.g.
odp_packet_has_error() could check whether parsing has been done
and if not do the parsing. Other calls may not have to perform
the check. Would such a design be robust enough?____
__ __
____
On 29/04/15 07:45, Savolainen, Petri (Nokia - FI/Espoo)
wrote:____
It's (v2) on the list (since last Thu):
[lng-odp] [API-NEXT PATCH v2 4/5] api: packet_io: added
parse mode
-Petri____
_______________________________________________
lng-odp mailing list
[email protected] <mailto:[email protected]>
https://lists.linaro.org/mailman/listinfo/lng-odp____
__ __
_______________________________________________
lng-odp mailing list
[email protected] <mailto:[email protected]>
https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected] <mailto:[email protected]>
https://lists.linaro.org/mailman/listinfo/lng-odp
--
Mike Holmes
Technical Manager - Linaro Networking Group
Linaro.org <http://www.linaro.org/>***│ *Open source software for ARM SoCs
__
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp