public inbox for glibc-cvs@sourceware.org help / color / mirror / Atom feed
From: Adhemerval Zanella <azanella@sourceware.org> To: glibc-cvs@sourceware.org Subject: [glibc/azanella/clang] elf: Use C11 atomics on _dl_mcount Date: Fri, 3 Jun 2022 14:01:42 +0000 (GMT) [thread overview] Message-ID: <20220603140142.408163850851@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2cd26fa111a3aeb1e5924c031ccce801ad536b47 commit 2cd26fa111a3aeb1e5924c031ccce801ad536b47 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Thu Mar 10 09:32:38 2022 -0300 elf: Use C11 atomics on _dl_mcount Checked on x86_64-linux-gnu. Diff: --- elf/dl-profile.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/elf/dl-profile.c b/elf/dl-profile.c index ec57e3a965..06dbeec4b1 100644 --- a/elf/dl-profile.c +++ b/elf/dl-profile.c @@ -548,7 +548,7 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) size_t newfromidx; to_index = (data[narcs].self_pc / (HASHFRACTION * sizeof (*tos))); - newfromidx = catomic_exchange_and_add (&fromidx, 1) + 1; + newfromidx = atomic_fetch_and_acquire (&fromidx, 1) + 1; froms[newfromidx].here = &data[narcs]; froms[newfromidx].link = tos[to_index]; tos[to_index] = newfromidx; @@ -558,14 +558,14 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) /* If we still have no entry stop searching and insert. */ if (*topcindex == 0) { - unsigned int newarc = catomic_exchange_and_add (narcsp, 1); + unsigned int newarc = atomic_exchange_and_add (narcsp, 1) + 1; /* In rare cases it could happen that all entries in FROMS are occupied. So we cannot count this anymore. */ if (newarc >= fromlimit) goto done; - *topcindex = catomic_exchange_and_add (&fromidx, 1) + 1; + *topcindex = atomic_fetch_and_acquire (&fromidx, 1) + 1; fromp = &froms[*topcindex]; fromp->here = &data[newarc]; @@ -573,7 +573,7 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) data[newarc].self_pc = selfpc; data[newarc].count = 0; fromp->link = 0; - catomic_increment (&narcs); + atomic_fetch_and_acquire (&narcs, 1); break; } @@ -586,7 +586,7 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) } /* Increment the counter. */ - catomic_increment (&fromp->here->count); + atomic_fetch_and_acquire (&fromp->here->count, 1); done: ;
next reply other threads:[~2022-06-03 14:01 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-03 14:01 Adhemerval Zanella [this message] -- strict thread matches above, loose matches on Subject: below -- 2022-06-09 21:15 Adhemerval Zanella 2022-06-09 13:12 Adhemerval Zanella 2022-05-13 14:15 Adhemerval Zanella 2022-05-12 19:29 Adhemerval Zanella 2022-05-10 18:19 Adhemerval Zanella 2022-04-29 13:59 Adhemerval Zanella 2022-04-04 12:49 Adhemerval Zanella 2022-03-31 19:02 Adhemerval Zanella 2022-03-29 20:25 Adhemerval Zanella 2022-03-16 18:01 Adhemerval Zanella 2022-03-15 18:39 Adhemerval Zanella 2022-03-11 17:23 Adhemerval Zanella
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=20220603140142.408163850851@sourceware.org \ --to=azanella@sourceware.org \ --cc=glibc-cvs@sourceware.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).