public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "marxin at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug gcov-profile/97461] [11 Regression] allocate_gcov_kvp() deadlocks in firefox LTO+PGO build (overridden malloc() recursion) Date: Thu, 29 Oct 2020 10:19:59 +0000 [thread overview] Message-ID: <bug-97461-4-J2Ol9US0uq@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-97461-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97461 Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |--- --- Comment #14 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Sergei Trofimovich from comment #13) > Tried firefox-82 with LTO+PGO today on gcc-11-4428-g4a369d199bf. It gets a > lot more forward, but still gets stuck. This time on > free()->allocate_gcov_kvp ()->alloc() deadloc. Hmm, that's quite unpleasant. Anyway, thanks for testing that. > > The backtrace: > > (gdb) bt > #0 __lll_lock_wait (futex=0x7ffff7800018, private=0) at lowlevellock.c:52 > #1 0x00007ffff7f69305 in __GI___pthread_mutex_lock (mutex=0x7ffff7800018) > at ../nptl/pthread_mutex_lock.c:135 > #2 0x00005555555b2151 in arena_t::MallocSmall(unsigned long, bool) () > #3 0x00005555555b307c in arena_t::Malloc(unsigned long, bool) () > #4 0x00005555555b41f2 in calloc () > #5 0x00005555556a49ab in allocate_gcov_kvp () at > /var/tmp/portage/sys-devel/gcc-11.0.0_pre9999/work/gcc-11.0.0_pre9999/libgcc/ > libgcov.h:431 > #6 gcov_topn_add_value (count=1, use_atomic=1, increment_total=1, > value=496, counters=0x5555557158c0 > <__gcov3._ZL20arena_run_reg_dallocP11arena_run_tP11arena_bin_tPvm>) > at > /var/tmp/portage/sys-devel/gcc-11.0.0_pre9999/work/gcc-11.0.0_pre9999/libgcc/ > libgcov.h:477 > #7 __gcov_topn_values_profiler_body (use_atomic=1, value=496, > counters=0x5555557158c0 > <__gcov3._ZL20arena_run_reg_dallocP11arena_run_tP11arena_bin_tPvm>) > at > /var/tmp/portage/sys-devel/gcc-11.0.0_pre9999/work/gcc-11.0.0_pre9999/libgcc/ > libgcov-profiler.c:103 > #8 __gcov_topn_values_profiler_atomic (counters=0x5555557158c0 > <__gcov3._ZL20arena_run_reg_dallocP11arena_run_tP11arena_bin_tPvm>, > value=496) > at > /var/tmp/portage/sys-devel/gcc-11.0.0_pre9999/work/gcc-11.0.0_pre9999/libgcc/ > libgcov-profiler.c:128 > #9 0x00005555555b1065 in arena_t::DallocSmall(arena_chunk_t*, void*, > arena_chunk_map_t*) () > #10 0x00005555555b166c in free () > #11 0x00007fffe1b0ef1a in CollectProcessInfo(ProcessInfo&) () at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #12 0x00007fffea0afa72 in PreRecordMetaInformation() () at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #13 0x00007fffea0b28c8 in profiler_shutdown(IsFastShutdown) () at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #14 0x00007fffea7c6aa0 in XREMain::XRE_main(int, char**, > mozilla::BootstrapConfig const&) () > at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #15 0x00007fffea7c7543 in XRE_main(int, char**, mozilla::BootstrapConfig > const&) () at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #16 0x00007fffea7cfbd0 in mozilla::BootstrapImpl::XRE_main(int, char**, > mozilla::BootstrapConfig const&) () > at > /home/slyfox/tmp/portage/www-client/firefox-82.0/work/firefox_build/ > instrumented/dist/firefox/libxul.so > #17 0x000055555559a370 in do_main(int, char**, char**) () > #18 0x00005555555980a1 in main () Can you please run in gdb how many times is allocate_gcov_kvp called before we reach the deadlock? > > Worth filing a new bug, or this would be good enough? We can stay with this PR as it contains useful discussion. Anyway, one another fix can be usage of the suggested __gcov_supress_malloc/__gcov_allow_malloc that will be used in an alternative memory allocator..
next prev parent reply other threads:[~2020-10-29 10:19 UTC|newest] Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-16 15:03 [Bug gcov-profile/97461] New: " slyfox at gcc dot gnu.org 2020-10-16 15:05 ` [Bug gcov-profile/97461] " slyfox at gcc dot gnu.org 2020-10-16 15:09 ` slyfox at gcc dot gnu.org 2020-10-16 15:16 ` slyfox at gcc dot gnu.org 2020-10-19 7:12 ` [Bug gcov-profile/97461] [11 Regression] " marxin at gcc dot gnu.org 2020-10-19 7:15 ` rguenth at gcc dot gnu.org 2020-10-19 13:42 ` marxin at gcc dot gnu.org 2020-10-19 13:46 ` Jan Hubicka 2020-10-19 13:46 ` hubicka at ucw dot cz 2020-10-19 14:15 ` marxin at gcc dot gnu.org 2020-10-19 14:51 ` Jan Hubicka 2020-10-19 14:52 ` hubicka at ucw dot cz 2020-10-19 14:58 ` marxin at gcc dot gnu.org 2020-10-27 10:50 ` cvs-commit at gcc dot gnu.org 2020-10-27 10:50 ` marxin at gcc dot gnu.org 2020-10-27 22:18 ` slyfox at gcc dot gnu.org 2020-10-29 10:19 ` marxin at gcc dot gnu.org [this message] 2020-10-29 14:53 ` slyfox at gcc dot gnu.org 2020-10-29 15:00 ` marxin at gcc dot gnu.org 2020-10-29 15:05 ` marxin at gcc dot gnu.org 2020-10-29 18:54 ` marxin at gcc dot gnu.org 2020-10-29 19:11 ` jakub at gcc dot gnu.org 2020-10-30 8:45 ` slyfox at gcc dot gnu.org 2020-10-30 23:37 ` slyfox at gcc dot gnu.org 2020-11-06 13:47 ` cvs-commit at gcc dot gnu.org 2020-11-06 13:49 ` marxin at gcc dot gnu.org 2020-11-09 9:57 ` marxin at gcc dot gnu.org 2020-12-04 7:01 ` marxin at gcc dot gnu.org 2021-01-21 9:26 ` rguenth at gcc dot gnu.org 2021-01-26 11:51 ` marxin at gcc dot gnu.org 2021-03-03 13:22 ` cvs-commit at gcc dot gnu.org 2021-03-03 13:27 ` marxin at gcc dot gnu.org 2021-03-03 13:31 ` jakub at gcc dot gnu.org 2021-03-03 14:49 ` marxin at gcc dot gnu.org 2021-03-03 15:14 ` lh_mouse at 126 dot com 2021-03-05 18:11 ` slyfox at gcc dot gnu.org 2021-03-06 8:19 ` marxin at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-97461-4-J2Ol9US0uq@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).