On 10/11/15 11:08, Maxim Uvarov wrote:
On 10 November 2015 at 13:41, Zoltan Kiss <[email protected]
<mailto:[email protected]>> wrote:
On 10/11/15 07:39, Maxim Uvarov wrote:
JIT like lua might also not work because you need to rewrite OVS to
support it. I don't think that it will be accepted.
And it looks like it's problem in OVS, not in ODP. I.e. OVS
should allow
to use library functions for fast path (where inlines are
critical).
I.e. not just call odp_packet_len(), but move hole OVS function to
dynamic library.
I'm not sure I get your point here, but OVS allows to use dynamic
library functions on fast path. The problem is that it's slow,
because of the function call overhead.
I'm not familiar with ovs code. But for example ovs has something like:
ovs_get_and_packet_process()
{
// here you use some inlines:
pkt = odp_recv();
len = odp_packet_len(pkt);
... etc.
}
So it's clear for each target arch you needs it's own variant of
ovs_get_and_packet_process() function. That function should go from ovs
to dynamic library.
I see. That would mitigate some of the problems, but unfortunately the
usage of these accessor functions couldn't be narrowed down to
particular piece of fast path code. E.g. the packet length is a quite
good example, you need it very often during processing, at different
parts of the code.
Maxim.
regards,
Maxim.
On 10 November 2015 at 02:50, Bill Fischofer
<[email protected] <mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>> wrote:
Adding Grant Likely to this chain as it relates to the broader
subject of portable ABIs that we've been discussing.
On Mon, Nov 9, 2015 at 4:48 PM, Jim Wilson
<[email protected] <mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>> wrote:
On Mon, Nov 9, 2015 at 2:39 PM, Bill Fischofer
<[email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>>
wrote:
> The IO Visor project appears to be doing something
like this with LLVM and
> JIT constructs to dynamically insert code into the
kernel in a
> platform-independent manner. Perhaps we can leverage
that technology?
GCC has some experimental JIT support, but I think it
would be a lot
of work to use it, and I don't know how stable it is.
https://gcc.gnu.org/wiki/JIT
The LLVM support is probably more advanced.
Jim
_______________________________________________
lng-odp mailing list
[email protected] <mailto:[email protected]>
<mailto:[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]
https://lists.linaro.org/mailman/listinfo/lng-odp