Hi Neale, After merged the patch ,the he configuration time of 100k cost 7+ mins .
The most time-consuming part is 'fib_node_list_walk' . The stack info is shown below: 0x00007ffff717d0eb in round_pow2 (x=44, pow2=8) at /home/vpp/build-data/../src/vppinfra/clib.h:277 277 { (gdb) bt #0 0x00007ffff717d0eb in round_pow2 (x=44, pow2=8) at /home/vpp/build-data/../src/vppinfra/clib.h:277 #1 0x00007ffff717d19c in vec_aligned_header_bytes (header_bytes=40, align=8) at /home/vpp/build-data/../src/vppinfra/vec_bootstrap.h:112 #2 0x00007ffff717d1e8 in vec_aligned_header (v=0x7fffba3af5a0, header_bytes=40, align=8) at /home/vpp/build-data/../src/vppinfra/vec_bootstrap.h:118 #3 0x00007ffff717de8a in pool_header (v=0x7fffba3af5a0) at /home/vpp/build-data/../src/vppinfra/pool.h:79 #4 0x00007ffff717dfd2 in fib_node_list_elt_get (fi=13419) at /home/vpp/build-data/../src/vnet/fib/fib_node_list.c:80 #5 0x00007ffff717f34b in fib_node_list_walk (list=26, fn=0x7ffff718c56c <fib_entry_cover_walk_node_ptr>, args=0x7fffb6cc5240) at /home/vpp/build-data/../src/vnet/fib/fib_node_list.c:382 #6 0x00007ffff718c647 in fib_entry_cover_walk (cover=0x7fffb7d46eb8, walk=0x7ffff718c65d <fib_entry_cover_change_one>, args=0xccbc) at /home/vpp/build-data/../src/vnet/fib/fib_entry_cover.c:104 #7 0x00007ffff718c74a in fib_entry_cover_change_notify (cover_index=0, covered=52412) at /home/vpp/build-data/../src/vnet/fib/fib_entry_cover.c:158 #8 0x00007ffff7172655 in fib_table_post_insert_actions (fib_table=0x7fffb6b409c0, prefix=0x7fffb6cc5490, fib_entry_index=52412) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:193 #9 0x00007ffff7172772 in fib_table_entry_insert (fib_table=0x7fffb6b409c0, prefix=0x7fffb6cc5490, fib_entry_index=52412) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:230 #10 0x00007ffff71732da in fib_table_entry_path_add2 (fib_index=0, prefix=0x7fffb6cc5490, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, rpath=0x7fffb74ebf74) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:601 #11 0x00007ffff71731a0 in fib_table_entry_path_add (fib_index=0, prefix=0x7fffb6cc5490, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, next_hop_proto=DPO_PROTO_IP4, next_hop=0x7fffb6cc5494, next_hop_sw_if_index=1, next_hop_fib_index=4294967295, next_hop_weight=1, next_hop_labels=0x0, path_flags=FIB_ROUTE_PATH_FLAG_NONE) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:569 #12 0x00007ffff6cb1d4f in arp_adj_fib_add (e=0x7fffb9040ad4, fib_index=0) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:550 #13 0x00007ffff6cb249e in vnet_arp_set_ip4_over_ethernet_internal (vnm=0x7ffff763cfc0 <vnet_main>, args=0x7fffb6cc5790) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:618 #14 0x00007ffff6cb7d74 in set_ip4_over_ethernet_rpc_callback (a=0x7fffb6cc5790) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:1989 #15 0x00007ffff79472ce in vl_api_rpc_call_main_thread_inline (fp=0x7ffff6cb7c63 <set_ip4_over_ethernet_rpc_callback>, data=0x7fffb6cc5790 "\001", data_length=28, force_rpc=0 '\000') at /home/vpp/build-data/../src/vlibmemory/memory_vlib.c:2061 #16 0x00007ffff7947421 in vl_api_rpc_call_main_thread (fp=0x7ffff6cb7c63 <set_ip4_over_ethernet_rpc_callback>, data=0x7fffb6cc5790 "\001", data_length=28) at /home/vpp/build-data/../src/vlibmemory/memory_vlib.c:2107 #17 0x00007ffff6cb8421 in vnet_arp_set_ip4_over_ethernet (vnm=0x7ffff763cfc0 <vnet_main>, sw_if_index=1, a_arg=0x7fffb6cc5890, is_static=0, is_no_fib_entry=0) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:2074 Thanks, Xyxue From: Neale Ranns (nranns) Date: 2018-04-23 20:36 To: 薛欣颖; vpp-dev@lists.fd.io Subject: Re: [vpp-dev] question about set ip arp HI Xyxue, Can you please test to see if the situation improves with: https://gerrit.fd.io/r/#/c/12012/ thanks, neale From: <vpp-dev@lists.fd.io> on behalf of xyxue <xy...@fiberhome.com> Date: Friday, 20 April 2018 at 11:31 To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io> Subject: [vpp-dev] question about set ip arp Hi guys, I'm testing 'set ip arp' . When I don't configure the param 'no-fib-entry' , the configuration time of 100k cost 19+ mins. When I configure the param 'no-fib-entry' the time is 9 s. Can I use 'set ip arp ... + no-fib-entry and ip route add ' achieve the same goal with 'set ip arp without no-fib-entry'? The most time-consuming part is 'clib_bihash_foreach_key_value_pair_24_8' . The stack info is shown below: 0 clib_bihash_foreach_key_value_pair_24_8 (h=0x7fffb5d4c840, callback=0x7ffff719c98d <adj_nbr_walk_nh_cb>, arg=0x7fffb5d33dc0) at /home/vpp/build-data/../src/vppinfra/bihash_template.c:589 #1 0x00007ffff719cafd in adj_nbr_walk_nh4 (sw_if_index=1, addr=0x7fffb5d4c0f8, cb=0x7ffff6cacb17 <arp_mk_complete_walk>, ctx=0x7fffb5d4c0f4) at /home/vpp/build-data/../src/vnet/adj/adj_nbr.c:642 #2 0x00007ffff6cacd64 in arp_update_adjacency (vnm=0x7ffff763a540 <vnet_main>, sw_if_index=1, ai=1) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:466 #3 0x00007ffff6cbb6fe in ethernet_update_adjacency (vnm=0x7ffff763a540 <vnet_main>, sw_if_index=1, ai=1) at /home/vpp/build-data/../src/vnet/ethernet/interface.c:208 #4 0x00007ffff71aca55 in vnet_update_adjacency_for_sw_interface (vnm=0x7ffff763a540 <vnet_main>, sw_if_index=1, ai=1) at /home/vpp/build-data/../src/vnet/adj/rewrite.c:225 #5 0x00007ffff719c201 in adj_nbr_add_or_lock (nh_proto=FIB_PROTOCOL_IP4, link_type=VNET_LINK_IP4, nh_addr=0x7fffb5d47ab0, sw_if_index=1) at /home/vpp/build-data/../src/vnet/adj/adj_nbr.c:246 #6 0x00007ffff718eb6a in fib_path_attached_next_hop_get_adj (path=0x7fffb5d47a88, link=VNET_LINK_IP4) at /home/vpp/build-data/../src/vnet/fib/fib_path.c:664 #7 0x00007ffff718ebc8 in fib_path_attached_next_hop_set (path=0x7fffb5d47a88) at /home/vpp/build-data/../src/vnet/fib/fib_path.c:678 #8 0x00007ffff7191077 in fib_path_resolve (path_index=14) at /home/vpp/build-data/../src/vnet/fib/fib_path.c:1862 #9 0x00007ffff718adb4 in fib_path_list_resolve (path_list=0x7fffb5ade9a4) at /home/vpp/build-data/../src/vnet/fib/fib_path_list.c:567 #10 0x00007ffff718b27d in fib_path_list_create (flags=FIB_PATH_LIST_FLAG_NONE, rpaths=0x7fffb5d4c56c) at /home/vpp/build-data/../src/vnet/fib/fib_path_list.c:734 #11 0x00007ffff7185732 in fib_entry_src_adj_path_swap (src=0x7fffb5c3aa94, entry=0x7fffb5d3ad2c, pl_flags=FIB_PATH_LIST_FLAG_NONE, paths=0x7fffb5d4c56c) at /home/vpp/build-data/../src/vnet/fib/fib_entry_src_adj.c:110 #12 0x00007ffff7181ed7 in fib_entry_src_action_path_swap (fib_entry=0x7fffb5d3ad2c, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, rpaths=0x7fffb5d4c56c) at /home/vpp/build-data/../src/vnet/fib/fib_entry_src.c:1191 #13 0x00007ffff717d63c in fib_entry_create (fib_index=0, prefix=0x7fffb5d34400, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, paths=0x7fffb5d4c56c) at /home/vpp/build-data/../src/vnet/fib/fib_entry.c:828 #14 0x00007ffff716dcca in fib_table_entry_path_add2 (fib_index=0, prefix=0x7fffb5d34400, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, rpath=0x7fffb5d4c56c) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:597 #15 0x00007ffff716dba9 in fib_table_entry_path_add (fib_index=0, prefix=0x7fffb5d34400, source=FIB_SOURCE_ADJ, flags=FIB_ENTRY_FLAG_ATTACHED, next_hop_proto=DPO_PROTO_IP4, next_hop=0x7fffb5d34404, next_hop_sw_if_index=1, next_hop_fib_index=4294967295, next_hop_weight=1, next_hop_labels=0x0, path_flags=FIB_ROUTE_PATH_FLAG_NONE) at /home/vpp/build-data/../src/vnet/fib/fib_table.c:569 #16 0x00007ffff6cacef5 in arp_adj_fib_add (e=0x7fffb5d4c0f4, fib_index=0) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:550 #17 0x00007ffff6cad644 in vnet_arp_set_ip4_over_ethernet_internal (vnm=0x7ffff763a540 <vnet_main>, args=0x7fffb5d34700) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:618 #18 0x00007ffff6cb2f1a in set_ip4_over_ethernet_rpc_callback (a=0x7fffb5d34700) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:1989 #19 0x00007ffff79442c9 in vl_api_rpc_call_main_thread_inline (fp=0x7ffff6cb2e09 <set_ip4_over_ethernet_rpc_callback>, data=0x7fffb5d34700 "\001", data_length=28, force_rpc=0 '\000') at /home/vpp/build-data/../src/vlibmemory/memory_vlib.c:2061 #20 0x00007ffff794441c in vl_api_rpc_call_main_thread (fp=0x7ffff6cb2e09 <set_ip4_over_ethernet_rpc_callback>, data=0x7fffb5d34700 "\001", data_length=28) at /home/vpp/build-data/../src/vlibmemory/memory_vlib.c:2107 #21 0x00007ffff6cb35c7 in vnet_arp_set_ip4_over_ethernet (vnm=0x7ffff763a540 <vnet_main>, sw_if_index=1, a_arg=0x7fffb5d34800, is_static=0, is_no_fib_entry=0) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:2074 #22 0x00007ffff6cb4015 in ip_arp_add_del_command_fn (vm=0x7ffff7923420 <vlib_global_main>, is_del=0, input=0x7fffb5d34ec0, cmd=0x7fffb5c78864) at /home/vpp/build-data/../src/vnet/ethernet/arp.c:2233 Thanks, Xyxue