On 10/11/15 11:08, Maxim Uvarov wrote:


On 10 November 2015 at 13:41, Zoltan Kiss <zoltan.k...@linaro.org
<mailto:zoltan.k...@linaro.org>> 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
        <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>
        <mailto:bill.fischo...@linaro.org
        <mailto:bill.fischo...@linaro.org>>> 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
        <jim.wil...@linaro.org <mailto:jim.wil...@linaro.org>
             <mailto:jim.wil...@linaro.org
        <mailto:jim.wil...@linaro.org>>> wrote:

                 On Mon, Nov 9, 2015 at 2:39 PM, Bill Fischofer
                 <bill.fischo...@linaro.org
        <mailto:bill.fischo...@linaro.org>
        <mailto:bill.fischo...@linaro.org
        <mailto:bill.fischo...@linaro.org>>>
                 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
        lng-...@lists.linaro.org <mailto:lng-...@lists.linaro.org>
        <mailto:lng-...@lists.linaro.org <mailto:lng-...@lists.linaro.org>>
        https://lists.linaro.org/mailman/listinfo/lng-odp




        _______________________________________________
        lng-odp mailing list
        lng-...@lists.linaro.org <mailto:lng-...@lists.linaro.org>
        https://lists.linaro.org/mailman/listinfo/lng-odp


_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to