Hi guys,
I'm testing the sr mpls, and there is a small cache release more than once.
How should we avoid this ? My debug info is shown below:
create_sl (mpls_sr_policy_t * sr_policy, mpls_label_t * sl, u32 weight)
{
mpls_sr_main_t *sm = &sr_mpls_main;
mpls_sr_sl_t *segment_list;
pool_get (sm->sid_lists, segment_list);
memset (segment_list, 0, sizeof (*segment_list));
vec_add1 (sr_policy->segments_lists, segment_list - sm->sid_lists);
/* Fill in segment list */
segment_list->weight =
(weight != (u32) ~ 0 ? weight : SR_SEGMENT_LIST_WEIGHT_DEFAULT);
segment_list->segments = vec_dup (sl);
fib_route_path_t path = {
.frp_proto = DPO_PROTO_MPLS,
.frp_sw_if_index = ~0,
.frp_fib_index = 0,
.frp_weight = segment_list->weight,
.frp_flags = FIB_ROUTE_PATH_FLAG_NONE,
.frp_label_stack = NULL,
.frp_local_label = sl[0],
};
vec_add (path.frp_label_stack, sl + 1, vec_len (sl) - 1);
fib_route_path_t *paths = NULL;
vec_add1 (paths, path);
mpls_eos_bit_t eos;
FOR_EACH_MPLS_EOS_BIT (eos)
{
/* *INDENT-OFF* */
fib_prefix_t pfx = {
.fp_len = 21,
.fp_proto = FIB_PROTOCOL_MPLS,
.fp_label = sr_policy->bsid,
.fp_eos = eos,
.fp_payload_proto = DPO_PROTO_MPLS,
};
/* *INDENT-ON* */
fib_table_entry_path_add2 (0,
&pfx,
FIB_SOURCE_SR,
(sr_policy->type == SR_POLICY_TYPE_DEFAULT ?
FIB_ENTRY_FLAG_NONE :
FIB_ENTRY_FLAG_MULTICAST), paths);
}
vec_free (paths);
return segment_list;
}
In this function,path.frp_label_stack alloc only one memory, but be used many
times with 'fib_table_entry_path_add2 '. When we delete
,'fib_path_ext_list_remove ' would bw call many times, then repeated memory
releaseļ¼and can't be detected.
void
fib_path_ext_list_remove (fib_path_ext_list_t *list,
fib_path_ext_type_t ext_type,
const fib_route_path_t *rpath)
{
fib_path_ext_t *path_ext;
path_ext = fib_path_ext_list_find(list, ext_type, rpath);
if (NULL != path_ext)
{
/*
* delete the element moving the remaining elements down 1 position.
* this preserves the sorted order.
*/
vec_free(path_ext->fpe_label_stack);
vec_delete(list->fpel_exts, 1, (path_ext - list->fpel_exts));
}
}
Actual operation situation:
DBGvpp# sr mpls policy add bsid 999 next 202 next 203 next 204
Thread 1 "vpp_main" hit Breakpoint 2, create_sl (sr_policy=0x7fffb5e47264,
sl=0x7fffb5589064, weight=4294967295)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:64
64 {
(gdb) n
65 mpls_sr_main_t *sm = &sr_mpls_main;
(gdb)
68 pool_get (sm->sid_lists, segment_list);
(gdb)
69 memset (segment_list, 0, sizeof (*segment_list));
(gdb)
71 vec_add1 (sr_policy->segments_lists, segment_list - sm->sid_lists);
(gdb)
75 (weight != (u32) ~ 0 ? weight : SR_SEGMENT_LIST_WEIGHT_DEFAULT);
(gdb)
74 segment_list->weight =
(gdb)
76 segment_list->segments = vec_dup (sl);
(gdb)
78 fib_route_path_t path = {
(gdb)
85 .frp_local_label = sl[0],
(gdb)
78 fib_route_path_t path = {
(gdb)
82 .frp_weight = segment_list->weight,
(gdb)
78 fib_route_path_t path = {
(gdb)
88 vec_add (path.frp_label_stack, sl + 1, vec_len (sl) - 1);
(gdb)
90 fib_route_path_t *paths = NULL;
(gdb) set pr pr
(gdb) p paths
$1 = (fib_route_path_t *) 0x0
(gdb) n
91 vec_add1 (paths, path);
(gdb) n
94 FOR_EACH_MPLS_EOS_BIT (eos)
(gdb) p *paths
$2 = {
frp_proto = DPO_PROTO_MPLS,
{
{
{
frp_addr = {
{
pad = {202, 0, 0},
ip4 = {
data = "\000\000\000",
data_u32 = 0,
as_u8 = "\000\000\000",
as_u16 = {0, 0},
as_u32 = 0
}
},
ip6 = {
as_u8 = "\312", '\000' <repeats 14 times>,
as_u16 = {202, 0, 0, 0, 0, 0, 0, 0},
as_u32 = {202, 0, 0, 0},
as_u64 = {202, 0},
as_uword = {202, 0}
},
as_u8 = "\312", '\000' <repeats 14 times>,
as_u64 = {202, 0}
},
{
frp_local_label = 202,
frp_eos = MPLS_NON_EOS
}
},
{
frp_sw_if_index = 4294967295,
frp_rpf_id = 4294967295
},
{
---Type <return> to continue, or q <return> to quit---
frp_fib_index = 0,
frp_bier_fib_index = 0
},
frp_label_stack = 0x7fffb5665c84
},
frp_bier_tbl = {
bti_set = 202,
bti_sub_domain = 0,
bti_ecmp = 0,
bti_hdr_len = BIER_HDR_LEN_64,
bti_type = BIER_TABLE_MPLS_SPF
},
frp_bier_imp = 202,
frp_udp_encap_id = 202,
frp_bier_fmask = 202
},
frp_weight = 1 '\001',
frp_preference = 0 '\000',
frp_flags = FIB_ROUTE_PATH_FLAG_NONE
}
DBGvpp# sr mpls policy del bsid 999 next 202 next 203 next 204
Thread 1 "vpp_main" hit Breakpoint 1, fib_path_ext_list_remove
(list=0x7fffb5e4c658, ext_type=FIB_PATH_EXT_MPLS,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_path_ext.c:394
394 {
(gdb) n
397 path_ext = fib_path_ext_list_find(list, ext_type, rpath);
(gdb)
399 if (NULL != path_ext)
(gdb)
405 vec_free(path_ext->fpe_label_stack);
(gdb) p path_ext->fpe_label_stack
There is no member named fpe_label_stack.
(gdb) p *path_ext
$4 = {
fpe_path = {
frp_proto = DPO_PROTO_MPLS,
{
{
{
frp_addr = {
{
pad = {202, 0, 0},
ip4 = {
data = "\000\000\000",
data_u32 = 0,
as_u8 = "\000\000\000",
as_u16 = {0, 0},
as_u32 = 0
}
},
ip6 = {
as_u8 = "\312", '\000' <repeats 14 times>,
as_u16 = {202, 0, 0, 0, 0, 0, 0, 0},
as_u32 = {202, 0, 0, 0},
as_u64 = {202, 0},
as_uword = {202, 0}
},
as_u8 = "\312", '\000' <repeats 14 times>,
as_u64 = {202, 0}
},
{
frp_local_label = 202,
frp_eos = MPLS_NON_EOS
}
},
{
frp_sw_if_index = 4294967295,
frp_rpf_id = 4294967295
},
---Type <return> to continue, or q <return> to quit---
{
frp_fib_index = 0,
frp_bier_fib_index = 0
},
frp_label_stack = 0x7fffb5665c84
},
frp_bier_tbl = {
bti_set = 202,
bti_sub_domain = 0,
bti_ecmp = 0,
bti_hdr_len = BIER_HDR_LEN_64,
bti_type = BIER_TABLE_MPLS_SPF
},
frp_bier_imp = 202,
frp_udp_encap_id = 202,
frp_bier_fmask = 202
},
frp_weight = 1 '\001',
frp_preference = 0 '\000',
frp_flags = FIB_ROUTE_PATH_FLAG_NONE
},
{
fpe_adj_flags = FIB_PATH_EXT_ADJ_FLAG_NONE
},
fpe_type = FIB_PATH_EXT_MPLS,
fpe_path_index = 17
}
(gdb) b mheap_put
Breakpoint 3 at 0x7ffff6845bc0: file
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c, line 756.
(gdb) c
Continuing.
Thread 1 "vpp_main" hit Breakpoint 3, mheap_put (v=0x7fffb5476000,
uoffset=2030720) //first release
at /home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c:756
756 {
(gdb) bt
#0 mheap_put (v=0x7fffb5476000, uoffset=2030720) at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c:756
#1 0x00007ffff73be5dd in clib_mem_free (p=0x7fffb5665c80) at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mem.h:186
#2 0x00007ffff73bf57e in fib_path_ext_list_remove (list=0x7fffb5e4c658,
ext_type=FIB_PATH_EXT_MPLS, rpath=0x7fffb5e471ac)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_path_ext.c:405
#3 0x00007ffff73a59ae in fib_entry_src_api_path_remove (src=0x7fffb5e4c658,
pl_flags=FIB_PATH_LIST_FLAG_NONE,
rpaths=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry_src_api.c:121
#4 0x00007ffff73a2e19 in fib_entry_src_action_path_remove
(fib_entry=0x7fffb5e46f98, source=FIB_SOURCE_SR,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry_src.c:1241
#5 0x00007ffff739e9c5 in fib_entry_path_remove (fib_entry_index=13,
source=FIB_SOURCE_SR, rpath=0x7fffb5e471ac)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry.c:918
#6 0x00007ffff738a0d5 in fib_table_entry_path_remove2 (fib_index=0,
prefix=0x7fffb5e629d0, source=FIB_SOURCE_SR,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_table.c:635
#7 0x00007ffff7193824 in sr_mpls_policy_del (bsid=999)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:233
#8 0x00007ffff71953c4 in sr_mpls_policy_command_fn (vm=0x7ffff7b89480
<vlib_global_main>, input=0x7fffb5e62ef0,
cmd=0x7fffb5e32db8) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:493
#9 0x00007ffff78b30ed in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=137)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:588
#10 0x00007ffff78b2ffb in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=138)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:566
#11 0x00007ffff78b2ffb in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:566
#12 0x00007ffff78b33d2 in vlib_cli_input (vm=0x7ffff7b89480 <vlib_global_main>,
input=0x7fffb5e62ef0,
function=0x7ffff794289b <unix_vlib_cli_output>, function_arg=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:662
#13 0x00007ffff7948059 in unix_cli_process_input (cm=0x7ffff7b892e0
<unix_cli_main>, cli_file_index=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/unix/cli.c:2308
#14 0x00007ffff7948bb7 in unix_cli_process (vm=0x7ffff7b89480
<vlib_global_main>, rt=0x7fffb5e52000, f=0x0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/unix/cli.c:2420
#15 0x00007ffff78e7537 in vlib_process_bootstrap (_a=140736238934640)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/main.c:1231
#16 0x00007ffff682cdc4 in clib_calljmp () at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/longjmp.S:110
#17 0x00007fffb5875a40 in ?? ()
---Type <return> to continue, or q <return> to quit---
#18 0x00007ffff78e7662 in vlib_process_startup (vm=0x7ffff688012e
<vec_aligned_header_bytes+54>, p=0x7fffb5875a80,
f=0x6068e5e444211f00) at
/home/git_pull_vpp/vpp/build-data/../src/vlib/main.c:1253
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) n
763 cpu_times[0] = clib_cpu_time_now ();
(gdb)
765 h = mheap_header (v);
(gdb)
767 mheap_maybe_lock (v);
(gdb)
769 if (h->flags & MHEAP_FLAG_VALIDATE)
(gdb)
772 ASSERT (h->n_elts > 0);
(gdb)
773 h->n_elts--;
(gdb)
774 h->stats.n_puts += 1;
(gdb)
776 e = mheap_elt_at_uoffset (v, uoffset);
(gdb)
777 n = mheap_next_elt (e);
(gdb)
778 n_user_data_bytes = mheap_elt_data_bytes (e);
(gdb)
780 trace_uoffset = uoffset;
(gdb)
781 trace_n_user_data_bytes = n_user_data_bytes;
(gdb)
783 bin = user_data_size_to_bin_index (n_user_data_bytes);
(gdb)
784 if (MHEAP_HAVE_SMALL_OBJECT_CACHE
(gdb) p bin
$5 = 1
(gdb) n
785 && bin < 255 && (h->flags & MHEAP_FLAG_SMALL_OBJECT_CACHE))
(gdb)
787 uoffset = mheap_put_small_object (h, bin, uoffset);
(gdb)
788 if (uoffset == 0)
(gdb) p uoffset
$6 = 0
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x00007ffff73bf521 in fib_path_ext_list_remove
at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_path_ext.c:394
breakpoint already hit 1 time
2 breakpoint keep y <MULTIPLE>
breakpoint already hit 1 time
2.1 y 0x00007ffff716a51c in create_sl
at
/home/git_pull_vpp/vpp/build-data/../src/vnet/srv6/sr_policy_rewrite.c:295
2.2 y 0x00007ffff71928ea in create_sl
at
/home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:64
3 breakpoint keep y 0x00007ffff6845bc0 in mheap_put
at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c:756
breakpoint already hit 1 time
(gdb) d 3
(gdb) b mheap_put if (uoffset == 2030720)
Breakpoint 4 at 0x7ffff6845bc0: file
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c, line 756.
(gdb) c
Continuing.
Thread 1 "vpp_main" hit Breakpoint 1, fib_path_ext_list_remove
(list=0x7fffb5e466d4, ext_type=FIB_PATH_EXT_MPLS,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_path_ext.c:394
394 {
(gdb) n
397 path_ext = fib_path_ext_list_find(list, ext_type, rpath);
(gdb)
399 if (NULL != path_ext)
(gdb) p *path_e
path_elem path_ext
(gdb) p *path_ext
$7 = {
fpe_path = {
frp_proto = DPO_PROTO_MPLS,
{
{
{
frp_addr = {
{
pad = {202, 0, 0},
ip4 = {
data = "\000\000\000",
data_u32 = 0,
as_u8 = "\000\000\000",
as_u16 = {0, 0},
as_u32 = 0
}
},
ip6 = {
as_u8 = "\312", '\000' <repeats 14 times>,
as_u16 = {202, 0, 0, 0, 0, 0, 0, 0},
as_u32 = {202, 0, 0, 0},
as_u64 = {202, 0},
as_uword = {202, 0}
},
as_u8 = "\312", '\000' <repeats 14 times>,
as_u64 = {202, 0}
},
{
frp_local_label = 202,
frp_eos = MPLS_NON_EOS
}
},
{
frp_sw_if_index = 4294967295,
frp_rpf_id = 4294967295
},
---Type <return> to continue, or q <return> to quit---
{
frp_fib_index = 0,
frp_bier_fib_index = 0
},
frp_label_stack = 0x7fffb5665c84
},
frp_bier_tbl = {
bti_set = 202,
bti_sub_domain = 0,
bti_ecmp = 0,
bti_hdr_len = BIER_HDR_LEN_64,
bti_type = BIER_TABLE_MPLS_SPF
},
frp_bier_imp = 202,
frp_udp_encap_id = 202,
frp_bier_fmask = 202
},
frp_weight = 1 '\001',
frp_preference = 0 '\000',
frp_flags = FIB_ROUTE_PATH_FLAG_NONE
},
{
fpe_adj_flags = FIB_PATH_EXT_ADJ_FLAG_NONE
},
fpe_type = FIB_PATH_EXT_MPLS,
fpe_path_index = 17
}
(gdb) c
Continuing.
Thread 1 "vpp_main" hit Breakpoint 4, mheap_put (v=0x7fffb5476000,
uoffset=2030720)
at /home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c:756
756 {
(gdb) bt
#0 mheap_put (v=0x7fffb5476000, uoffset=2030720) at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mheap.c:756 //second release
#1 0x00007ffff73be5dd in clib_mem_free (p=0x7fffb5665c80) at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/mem.h:186
#2 0x00007ffff73bf57e in fib_path_ext_list_remove (list=0x7fffb5e466d4,
ext_type=FIB_PATH_EXT_MPLS, rpath=0x7fffb5e471ac)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_path_ext.c:405
#3 0x00007ffff73a59ae in fib_entry_src_api_path_remove (src=0x7fffb5e466d4,
pl_flags=FIB_PATH_LIST_FLAG_NONE,
rpaths=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry_src_api.c:121
#4 0x00007ffff73a2e19 in fib_entry_src_action_path_remove
(fib_entry=0x7fffb5e47028, source=FIB_SOURCE_SR,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry_src.c:1241
#5 0x00007ffff739e9c5 in fib_entry_path_remove (fib_entry_index=15,
source=FIB_SOURCE_SR, rpath=0x7fffb5e471ac)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_entry.c:918
#6 0x00007ffff738a0d5 in fib_table_entry_path_remove2 (fib_index=0,
prefix=0x7fffb5e629d0, source=FIB_SOURCE_SR,
rpath=0x7fffb5e471ac) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/fib/fib_table.c:635
#7 0x00007ffff7193824 in sr_mpls_policy_del (bsid=999)
at /home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:233
#8 0x00007ffff71953c4 in sr_mpls_policy_command_fn (vm=0x7ffff7b89480
<vlib_global_main>, input=0x7fffb5e62ef0,
cmd=0x7fffb5e32db8) at
/home/git_pull_vpp/vpp/build-data/../src/vnet/srmpls/sr_mpls_policy.c:493
#9 0x00007ffff78b30ed in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=137)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:588
#10 0x00007ffff78b2ffb in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=138)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:566
#11 0x00007ffff78b2ffb in vlib_cli_dispatch_sub_commands (vm=0x7ffff7b89480
<vlib_global_main>,
cm=0x7ffff7b89660 <vlib_global_main+480>, input=0x7fffb5e62ef0,
parent_command_index=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:566
#12 0x00007ffff78b33d2 in vlib_cli_input (vm=0x7ffff7b89480 <vlib_global_main>,
input=0x7fffb5e62ef0,
function=0x7ffff794289b <unix_vlib_cli_output>, function_arg=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/cli.c:662
#13 0x00007ffff7948059 in unix_cli_process_input (cm=0x7ffff7b892e0
<unix_cli_main>, cli_file_index=0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/unix/cli.c:2308
#14 0x00007ffff7948bb7 in unix_cli_process (vm=0x7ffff7b89480
<vlib_global_main>, rt=0x7fffb5e52000, f=0x0)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/unix/cli.c:2420
#15 0x00007ffff78e7537 in vlib_process_bootstrap (_a=140736238934640)
at /home/git_pull_vpp/vpp/build-data/../src/vlib/main.c:1231
#16 0x00007ffff682cdc4 in clib_calljmp () at
/home/git_pull_vpp/vpp/build-data/../src/vppinfra/longjmp.S:110
#17 0x00007fffb5875a40 in ?? ()
---Type <return> to continue, or q <return> to quit---
#18 0x00007ffff78e7662 in vlib_process_startup (vm=0x7ffff688012e
<vec_aligned_header_bytes+54>, p=0x7fffb5875a80,
f=0x6068e5e444211f00) at
/home/git_pull_vpp/vpp/build-data/../src/vlib/main.c:1253
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Through the following debug functions, print the small memory cache, We can see
that the same offset has been stored 2 times , It is also verified that the
memory is repeatedly released.
void mheap_small_cache(void *v)
{
mheap_t *h = mheap_header (v);
uword i = 0;
#define CHECK(x) if (! (x)) { mheap_validate_breakpoint (); os_panic (); }
for (i = 0; i < ARRAY_LEN (h->small_object_cache.bins.as_u8); i++)
{
if (h->small_object_cache.bins.as_u8[i] != 0)
{
mheap_elt_t *e;
uword b = h->small_object_cache.bins.as_u8[i] - 1;
uword o = h->small_object_cache.offsets[i];
uword s;
e = mheap_elt_at_uoffset (v, o);
s = mheap_elt_data_bytes (e);
printf ("i = %8d, bin =%8d, offset = %8d, data_len = %8d, ptr = %p.\n",
(int)i, (int)b, (int)o, (int)s, e);
}
}
}
/*
* fd.io coding-style-patch-verification: ON
(gdb) call mheap_small_cache (clib_mem_get_heap ())
i = 0, bin = 5, offset = 10059896, data_len = 28, ptr =
0x7fffb5e0e070.
i = 1, bin = 5, offset = 10294812, data_len = 28, ptr =
0x7fffb5e47614.
i = 2, bin = 7, offset = 10295924, data_len = 36, ptr =
0x7fffb5e47a6c.
i = 3, bin = 3, offset = 9642216, data_len = 20, ptr =
0x7fffb5da80e0.
i = 4, bin = 3, offset = 10196536, data_len = 20, ptr =
0x7fffb5e2f630.
i = 5, bin = 1, offset = 2030720, data_len = 12, ptr =
0x7fffb55da6f0.
i = 6, bin = 3, offset = 1493816, data_len = 20, ptr =
0x7fffb55e2b30.
i = 7, bin = 3, offset = 10175184, data_len = 20, ptr =
0x7fffb5e2a2c8.
i = 8, bin = 3, offset = 1953400, data_len = 20, ptr =
0x7fffb5652e70.
i = 9, bin = 3, offset = 9589896, data_len = 20, ptr =
0x7fffb5d9b480.
i = 10, bin = 3, offset = 1576400, data_len = 20, ptr =
0x7fffb55f6dc8.
i = 11, bin = 51, offset = 78000, data_len = 212, ptr =
0x7fffb54890a8.
i = 12, bin = 1, offset = 10027684, data_len = 12, ptr =
0x7fffb5e0629c.
i = 13, bin = 3, offset = 1126496, data_len = 20, ptr =
0x7fffb5589058.
i = 14, bin = 9, offset = 10079012, data_len = 44, ptr =
0x7fffb5e12b1c.
i = 15, bin = 5, offset = 46380, data_len = 28, ptr =
0x7fffb5481524.
i = 16, bin = 2, offset = 10050652, data_len = 16, ptr =
0x7fffb5e0bc54.
i = 17, bin = 1, offset = 9607132, data_len = 12, ptr =
0x7fffb5d9f7d4.
i = 18, bin = 12, offset = 10294940, data_len = 56, ptr =
0x7fffb5e47694.
i = 19, bin = 22, offset = 10314828, data_len = 96, ptr =
0x7fffb5e4c444.
i = 20, bin = 3, offset = 2024832, data_len = 20, ptr =
0x7fffb5664578.
i = 21, bin = 91, offset = 77620, data_len = 372, ptr =
0x7fffb5488f2c.
i = 22, bin = 3, offset = 1518016, data_len = 20, ptr =
0x7fffb55e89b8.
i = 23, bin = 10, offset = 10315032, data_len = 48, ptr =
0x7fffb5e4c510.
i = 24, bin = 10, offset = 10315088, data_len = 48, ptr =
0x7fffb5e4c548.
i = 25, bin = 10, offset = 10315144, data_len = 48, ptr =
0x7fffb5e4c580.
i = 26, bin = 10, offset = 10315200, data_len = 48, ptr =
0x7fffb5e4c5b8.
i = 27, bin = 57, offset = 91480, data_len = 236, ptr =
0x7fffb548c550.
i = 28, bin = 2, offset = 14680072, data_len = 16, ptr =
0x7fffb6276000.
i = 29, bin = 3, offset = 10082776, data_len = 20, ptr =
0x7fffb5e139d0.
i = 30, bin = 1, offset = 1769376, data_len = 12, ptr =
0x7fffb5625f98.
i = 31, bin = 2, offset = 10289660, data_len = 16, ptr =
0x7fffb5e461f4.
i = 32, bin = 2, offset = 10289636, data_len = 16, ptr =
0x7fffb5e461dc.
i = 33, bin = 14, offset = 10317452, data_len = 64, ptr =
0x7fffb5e4ce84.
i = 34, bin = 7, offset = 10317552, data_len = 36, ptr =
0x7fffb5e4cee8.
i = 35, bin = 1, offset = 2030720, data_len = 12, ptr =
0x7fffb55da6f0.
i = 36, bin = 3, offset = 10074264, data_len = 20, ptr =
0x7fffb5e11890.
Thanks,
Xyxue
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev