Hi, On 06/13/2016 09:41 AM, Ding, HengX wrote: > The following command will cause ip_fragmentation app fail: > examples/ip_fragmentation/build/ip_fragmentation -c 0x40002 -n 4 -- -p 0x3 -q > 2 > while setting core mask to 0x2 or 0x40000 will not cause this issue. > > error message is shown below: > > EAL: Not managed by a supported kernel driver, skipped > IP_FRAG: Creating direct mempool on socket 0 > IP_FRAG: Creating indirect mempool on socket 0 > IP_FRAG: Creating LPM table on socket 0 > IP_FRAG: Creating LPM6 table on socket 0 > IP_FRAG: Creating direct mempool on socket 1 > IP_FRAG: Creating indirect mempool on socket 1 > IP_FRAG: Creating LPM table on socket 1 > IP_FRAG: Creating LPM6 table on socket 1 > IP_FRAG: Cannot create LPM table > PANIC in main(): > Cannot initialize memory structures! > 5: [examples/ip_fragmentation/build/ip_fragmentation() [0x42df85]] > 4: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x3a8a421d65]] > 3: [examples/ip_fragmentation/build/ip_fragmentation() [0x42d163]] > 2: [examples/ip_fragmentation/build/ip_fragmentation(__rte_panic+0xc9) > [0x426c0c]] > 1: [examples/ip_fragmentation/build/ip_fragmentation(rte_dump_stack+0x1a) > [0x4980aa]] > Aborted (core dumped) > > And the bisect result: > > f82f705b635d31a63446a16bc4526dbebf293c5a is the first bad commit > commit f82f705b635d31a63446a16bc4526dbebf293c5a > Author: Olivier Matz <olivier.matz at 6wind.com> > Date: Wed Apr 6 15:27:58 2016 +0200 > > lpm: fix allocation of an existing object > > Change rte_lpm*_create() functions to return NULL and set rte_errno to > EEXIST when the object name already exists. This is the behavior > described in the API documentation in the header file. > > These functions were returning a pointer to the existing object in that > case, but it is a problem as the caller did not know if the object had > to be freed or not. > > Doing this change also makes the lpm API more consistent with the other > APIs (mempool, rings, ...). > > Fixes: 916e4f4f4e ("memory: fix for multi process support") > > Signed-off-by: Olivier Matz <olivier.matz at 6wind.com> > Acked-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
>From what I see, the ip_fragmentation example does not check if a lpm table already exists before creating it. I'll send a patch to fix this, and also check if other applications examples are impacted. Thanks for reporting. Regards, Olivier