Hi,
We are curious if there is any solution in the pipeline for this issue of
iplookuptable insert, i.e. crash at buffer_alloc_multi() ? Any pointer will
be really helpful.
If it will help, we can create an issue in github too.
Thanks for the help.

Regards,
P Gyanesh Kumar Patra

On Tue, Sep 11, 2018 at 12:17 PM Maxim Uvarov <maxim.uva...@linaro.org>
wrote:

> odp prints happen on places where ODP_DBG("print something") is placed.
> It's just additional debug information.
> Also you can increase stack with ulimit -s unlimited and run valgrind to
> that app. But I generated core on adding to table random values I saw
> segfault and gdb pointed to that function.
>
> Maxim.
>
>
>
>
> On 11 September 2018 at 18:03, Fabricio Rodríguez <fabrytt...@gmail.com>
> wrote:
>
>> Hi Maxim,
>>
>> I have tried the patch that you sent, but the issue continues.
>>
>> Also was trying enabling the debug flags at ODP but for some reason, I
>> can not see any print, you have any suggestion of how to see the ODP debug
>> prints when using an ODP library from an external application?.
>>
>> Regards,
>>
>> Fabricio
>>
>>
>> El mar., 11 sept. 2018 a las 10:44, Maxim Uvarov (<
>> maxim.uva...@linaro.org>) escribió:
>>
>>> Gyanesh,
>>>
>>> I tried to add some random data to ip lookup table and found that it
>>> breaks it's own stack due to recursion.
>>>
>>> I have no idea if it's your case or not. Probably not because you have
>>> buffer_alloc_multi in stack trace and I do not see that.
>>>
>>> You can test this patch:
>>> https://github.com/Linaro/odp/pull/700
>>>
>>> Maxim.
>>>
>>> On 10.09.2018 20:01, gyanesh patra wrote:
>>> > We tried it as:
>>> > #define ENTRY_NUM_SUBTREE(1 << 12)
>>> >
>>> > But it didn't work. We couldn't increase it anymore without adding
>>> > more RAM to system.
>>> > One point to consider is that, this same thing was working with ODP
>>> > 1.16 code, but with ODP 1.19 version it is not working.
>>> >
>>> > P Gyanesh Kumar Patra
>>> >
>>> >
>>> > On Mon, Sep 10, 2018 at 12:31 PM Maxim Uvarov <maxim.uva...@linaro.org
>>> > <mailto:maxim.uva...@linaro.org>> wrote:
>>> >
>>> >     did you try to increase?
>>> >
>>> >     /* The size of one L2\L3 subtree */
>>> >     #define ENTRY_NUM_SUBTREE(1 << 8)
>>> >     ./helper/iplookuptable.c
>>> >
>>> >     On 10 September 2018 at 18:27, gyanesh patra
>>> >     <pgyanesh.pa...@gmail.com <mailto:pgyanesh.pa...@gmail.com>>
>>> wrote:
>>> >
>>> >         We are using ODP library from an external application. hence i
>>> >         dont have a simple test code to reproduce it.
>>> >         But to give a perspective:
>>> >         - the value size as 12
>>> >         - the ip prefix is 32
>>> >         The crash is happening around 159th entry. If the prefix is
>>> >         changed to 16, the crash happens at around 496th entry.
>>> >         Regards,
>>> >         P Gyanesh Kumar Patra
>>> >
>>> >
>>> >         On Mon, Sep 10, 2018 at 12:16 PM Maxim Uvarov
>>> >         <maxim.uva...@linaro.org <mailto:maxim.uva...@linaro.org>>
>>> wrote:
>>> >
>>> >             do you have some test code to reproduce it?
>>> >
>>> >             On 10 September 2018 at 18:06, gyanesh patra
>>> >             <pgyanesh.pa...@gmail.com
>>> >             <mailto:pgyanesh.pa...@gmail.com>> wrote:
>>> >
>>> >                 Hi,
>>> >                 ODP is crashing at buffer_alloc_multi() while
>>> >                 inserting into iplookuptable.
>>> >
>>> >                 The backtrace is as below: (gdb) bt #0
>>> buffer_alloc_multi
>>> >                 (pool=0x7fffd5420c00,
>>> >                 buf_hdr=buf_hdr@entry=0x7fff55fa8bb0,
>>> >                 max_num=max_num@entry=1) at odp_pool.c:700 #1
>>> >                 0x0000000000433083 in
>>> >                 odp_buffer_alloc (pool_hdl=pool_hdl@entry=0x9) at
>>> >                 odp_pool.c:861 #2
>>> >                 0x0000000000703732 in cache_alloc_new_pool
>>> >                 (type=CACHE_TYPE_TRIE,
>>> >                 tbl=<optimized out>) at iplookuptable.c:223 #3
>>> >                 cache_get_buffer
>>> >                 (type=CACHE_TYPE_TRIE, tbl=<optimized out>) at
>>> >                 iplookuptable.c:248 #4
>>> >                 trie_insert_node (nexthop=<optimized out>,
>>> >                 cidr=<optimized out>,
>>> >                 ip=<optimized out>, root=<optimized out>,
>>> >                 tbl=<optimized out>) at
>>> >                 iplookuptable.c:317 #5 odph_iplookup_table_put_value
>>> >                 (tbl=<optimized out>,
>>> >                 key=<optimized out>, value=<optimized out>) at
>>> >                 iplookuptable.c:686
>>> >
>>> >                 Am i looking at any limitation to iplookuptable
>>> >                 implementaion here? If any
>>> >                 other details are needed, please let us know.
>>> >
>>> >                 Regards,
>>> >                 P Gyanesh Kumar Patra
>>> >
>>> >
>>> >
>>>
>>>
>

Reply via email to