Em Tue, Mar 30, 2021 at 12:10:10PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Mon, Mar 29, 2021 at 02:40:05PM -0300, Arnaldo Carvalho de Melo escreveu: > > [acme@five pahole]$ ulimit -c 10000000 > > [acme@five pahole]$ > > [acme@five pahole]$ file tcp_bbr.o > > tcp_bbr.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), with debug_info, not stripped > > [acme@five pahole]$ readelf -wi tcp_bbr.o | grep DW_AT_producer > > <d> DW_AT_producer : (indirect string, offset: 0x4a97): GNU C89 10.2.1 20200723 (Red Hat 10.2.1-1) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -mindirect-branch=thunk-extern -mindirect-branch-register -mrecord-mcount -mfentry -march=x86-64 -g -O2 -std=gnu90 -p -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -falign-jumps=1 -falign-loops=1 -fno-asynchronous-unwind-tables -fno-jump-tables -fno-delete-null-pointer-checks -fno-allow-store-data-races -fstack-protector-strong -fno-var-tracking-assignments -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fstack-check=no -fconserve-stack -fcf-protection=none > > [acme@five pahole]$ fullcircle tcp_bbr.o > > /home/acme/bin/fullcircle: line 38: 3969006 Segmentation fault (core dumped) ${pfunct_bin} --compile $file > $c_output > > /tmp/fullcircle.4XujnI.c:1435:2: error: unterminated comment > > 1435 | /* si > > | ^ > > /tmp/fullcircle.4XujnI.c:1433:2: error: expected specifier-qualifier-list at end of input > > 1433 | u32 * saved_syn; /* 2184 8 */ > > | ^~~ > > codiff: couldn't load debugging info from /tmp/fullcircle.ZOVXGv.o > > /home/acme/bin/fullcircle: line 40: 3969019 Segmentation fault (core dumped) ${codiff_bin} -q -s $file $o_output > > [acme@five pahole]$ > > > > Both seem unrelated to what you've done here, I'm investigating it now. > > The fullcircle one, that crashes at the 'codiff' utility is related to > the patch that makes dwarf_cu to allocate space for the hash tables, as > you introduced a destructor for the dwarf_cu hashtables and the dwarf_cu > that was assigned to cu->priv was a local variable, which wasn't much of > a problem because we were not freeing it, as it went away at each loop > iteration, the following patch to that first patch in the series seems > to cure it, I'm folding it into your patch + a commiter note. [acme@five pahole]$ codiff tcp_bbr.o /tmp/fullcircle.ceBLyj.o /home/acme/git/linux/net/ipv4/tcp_bbr.c: bbr_unregister | -6 __compiletime_assert_691 | +0 bbr_register | -11 bbr_ssthresh | -76 bbr_undo_cwnd | -101 bbr_sndbuf_expand | -11 bbr_init | -385 bbr_main | -2640 bbr_lt_bw_sampling | -803 bbr_packets_in_net_at_edt | -212 bbr_inflight | -172 __compiletime_assert_655 | +0 bbr_set_pacing_rate | -182 kcsan_check_access | +6 kasan_check_write | +14 tcp_unregister_congestion_control | +0 tcp_register_congestion_control | +0 minmax_running_max | +0 prandom_u32 | +0 __warn_printk | +0 __stack_chk_fail | +0 21 functions changed, 20 bytes added, 4599 bytes removed, diff: -4579 [acme@five pahole]$ [acme@five pahole]$ [acme@five pahole]$ fullcircle tcp_bbr.o [acme@five pahole]$ This one is dealt with, doing some more tests and looking at that array[] versus array[0]. - Arnaldo