There is no way to gracefully fail an insertion into a bihash - it either succeeds or you get a crash.
The max session limit attempts to guard against that, by failing the addition using the heuristic number. You dialed this number up to 20 mil, so no more safe guard - which is what you observe. But you are still running at a default heap size. “heapsize” parameter allows to change that. As there is no hard and fast formula how much memory the bihash will consume, it’s up to you to tune the above two variables such that there is happiness. --a > On 23 May 2021, at 08:14, NetHappy <nethappys...@gmail.com> wrote: > > Hi An drew, > > Myself modified the code to suit some requirement. The plain vpp acl module > also crashes in similar situation. > I am expecting the vpp should crash while trying to add more sessions. The > system has 64 GB RAM and vpp was using 3.44% of the memory while crashing. > So the system is not out of memory but its not configured to use the > available memory. > > The relevant crash bt is this > > #5 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 > #6 0x00007f2fba309859 in __GI_abort () at abort.c:79 > #7 0x00007f2fba4e0bba in os_panic () at > /root/code/vpp/src/vppinfra/unix-misc.c:221 > #8 os_out_of_memory () at /root/code/vpp/src/vppinfra/unix-misc.c:221 > #9 0x00007f2fba721701 in clib_mem_alloc_aligned_at_offset > (os_out_of_memory_on_failure=1, align_offset=0, align=64, size=98368) at > /root/code/vpp/src/vppinfra/mem.h:243 > #10 clib_mem_alloc_aligned (align=64, size=98368) at > /root/code/vpp/src/vppinfra/mem.h:263 > #11 alloc_aligned_16_8 (nbytes=12288, h=0x7f2f79d59998 <acl_main+728>) at > /root/code/vpp/src/vppinfra/bihash_template.c:77 > #12 value_alloc_16_8 (h=0x7f2f79d59998 <acl_main+728>, log2_pages=<optimized > out>) at /root/code/vpp/src/vppinfra/bihash_template.c:462 > #13 0x00007f2fbabdaefd in split_and_rehash_16_8 (h=h@entry=0x7f2f79d59998 > <acl_main+728>, old_values=old_values@entry=0x7f2faf1d9a00, > old_log2_pages=old_log2_pages@entry=5, > new_log2_pages=new_log2_pages@entry=7) at > /root/code/vpp/src/vppinfra/bihash_template.c:581 > #14 0x00007f2fbabdcbd0 in clib_bihash_add_del_inline_with_hash_16_8 (arg=0x0, > is_stale_cb=0x0, is_add=1, hash=<optimized out>, add_v=0x7f19a6991b48, > h=0x7f2f79d59998 <acl_main+728>) at > /root/code/vpp/src/vppinfra/bihash_template.c:901 > #15 clib_bihash_add_del_inline_16_8 (arg=0x0, is_stale_cb=0x0, is_add=1, > add_v=0x7f19a6991b48, h=0x7f2f79d59998 <acl_main+728>) > at /root/code/vpp/src/vppinfra/bihash_template.c:985 > #16 clib_bihash_add_del_16_8 (h=h@entry=0x7f2f79d59998 <acl_main+728>, > add_v=add_v@entry=0x7f19a6991b48, is_add=is_add@entry=1) > at /root/code/vpp/src/vppinfra/bihash_template.c:992 > #17 0x00007f2f798bc8b5 in acl_fa_add_session (current_policy_epoch=<optimized > out>, p5tuple=0x7f2f7cd5bc58, now=7927760728493450, sw_if_index=<optimized > out>, is_ip6=0, > is_input=0, am=<optimized out>) at > /root/code/vpp/src/plugins/acl/session_inlines.h:577 > #18 acl_fa_inner_node_fn (reclassify_sessions=1, node_trace_on=0, > with_stateful_datapath=1, is_l2_path=1, is_input=0, is_ip6=0, > frame=0x7f2f8c5f6440, > node=0x7f2f8d6de980, vm=0x7f2f8d6f3dc0) at > /root/code/vpp/src/plugins/acl/dataplane_node.c:1137 > #19 acl_fa_outer_node_fn (do_stateful_datapath=1, is_l2_path=1, is_input=0, > is_ip6=0, frame=0x7f2f8c5f6440, node=0x7f2f8d6de980, vm=0x7f2f8d6f3dc0) > at /root/code/vpp/src/plugins/acl/dataplane_node.c:1428 > #20 acl_fa_node_fn (is_l2_path=1, is_input=0, is_ip6=0, frame=0x7f2f8c5f6440, > node=0x7f2f8d6de980, vm=0x7f2f8d6f3dc0) > at /root/code/vpp/src/plugins/acl/dataplane_node.c:1456 > #21 acl_out_l2_ip4_node_fn_hsw (vm=0x7f2f8d6f3dc0, node=0x7f2f8d6de980, > frame=0x7f2f8c5f6440) at /root/code/vpp/src/plugins/acl/dataplane_node.c:1569 > #22 0x00007f2fba595fa6 in dispatch_node (last_time_stamp=<optimized out>, > frame=0x7f2f8c5f6440, dispatch_state=VLIB_NODE_STATE_POLLING, > type=VLIB_NODE_TYPE_INTERNAL, > node=0x7f2f8d6de980, vm=0x7f2f8d6de980) at > /root/code/vpp/src/vlib/main.c:1039 > #23 dispatch_pending_node (vm=vm@entry=0x7f2f8d6f3dc0, > pending_frame_index=pending_frame_index@entry=7, last_time_stamp=<optimized > out>) > at /root/code/vpp/src/vlib/main.c:1198 > #24 0x00007f2fba5978ff in vlib_main_or_worker_loop (is_main=0, > vm=0x7f2f8d6f3dc0) at /root/code/vpp/src/vlib/main.c:1662 > #25 vlib_worker_loop (vm=vm@entry=0x7f2f8d6f3dc0) at > /root/code/vpp/src/vlib/main.c:1796 > #26 0x00007f2fba5c4bf8 in vlib_worker_thread_fn (arg=<optimized out>) at > /root/code/vpp/src/vlib/threads.c:1872 > #27 0x00007f2fba529cb0 in clib_calljmp () from > /lib/x86_64-linux-gnu/libvppinfra.so.21.06 > #28 0x00007f2f72896d10 in ?? () > #29 0x00007f2f76976c5d in eal_thread_loop.cold () from > /usr/lib/x86_64-linux-gnu/vpp_plugins/dpdk_plugin.so > #30 0x0000000000000000 in ?? () > > In the frame 18 before calling acl_fa_can_add_session, why > acl_fa_can_add_session is not failing ? What Is best way to set configuration > so that vpp able to use more RAM ? > > Thanks, > Mahamuda > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19455): https://lists.fd.io/g/vpp-dev/message/19455 Mute This Topic: https://lists.fd.io/mt/77321080/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-