Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

Feed Advanced Search

Jul 5 2022

calixte accepted D129128: [Compiler-RT] Remove FlushViewOfFile call when unmapping gcda files on win32..

This patch is running for months in Firefox's CI and we didn't observe anything wrong and thanks to it we fixed several timeout issues.
I suppose that in case of hard failures, the partial ccov data are likely useless and everything will be ran again.

Jul 5 2022, 4:32 AM · Restricted Project, Restricted Project

Feb 17 2021

calixte accepted D96740: IR: Rename Metadata::ImplicitCode to SubclassData1, NFC.

My I missed this patch.
I'm fine with it: that stuff is useless.

Feb 17 2021, 9:21 AM · Restricted Project

Jul 17 2020

calixte accepted D83149: [gcov] Add __gcov_dump/__gcov_reset and delete __gcov_flush.

LGTM

Jul 17 2020, 9:35 AM · Restricted Project, Restricted Project, Restricted Project

Jun 30 2020

calixte accepted D82742: Correctly track gcov update.

LGTM

Jun 30 2020, 1:03 PM · Restricted Project
calixte requested changes to D82742: Correctly track gcov update.
Jun 30 2020, 7:33 AM · Restricted Project

Jun 25 2020

calixte added a reviewer for D81060: [profile] Remove useless msync when dumping gcda files: serge-sans-paille.
Jun 25 2020, 12:29 AM · Restricted Project

Jun 22 2020

calixte added a comment to D82253: [gcov] Move llvm_writeout_files from atexit to a static destructor.

It's because you moved fn_list_remove(&writeout_fn_list); in llvm_writeout_files(void)

Jun 22 2020, 10:44 AM · Restricted Project
calixte accepted D82253: [gcov] Move llvm_writeout_files from atexit to a static destructor.

LGTM

Jun 22 2020, 1:33 AM · Restricted Project

Jun 15 2020

calixte added a comment to D81830: [compiler-rt] Fix intermittent failure with instrprof-gcov-multithread_fork.test on 32-bit arm.

The base patch is not the correct one:
https://reviews.llvm.org/D81650
Oh I think I understand: the patch I made has been uplifted in branch 10 (https://bugs.llvm.org/show_bug.cgi?id=44792#c22) but no the test fix: https://reviews.llvm.org/D79621
So you must uplift patch in D79621 in branch 10 and if the issue is still there then add the try...catch like in D81650.
If it isn't clear enough then you can reach me on irc or discord.

Jun 15 2020, 3:46 AM

Jun 11 2020

calixte created D81650: [compiler-rt] Fix intermittent failure with instrprof-gcov-multithread_fork.test on 32-bit arm.
Jun 11 2020, 7:08 AM · Restricted Project

Jun 8 2020

calixte accepted D81227: Correctly report modified status for GCOVProfiling.
Jun 8 2020, 12:08 PM · Restricted Project

Jun 5 2020

calixte added inline comments to D81227: Correctly report modified status for GCOVProfiling.
Jun 5 2020, 1:04 AM · Restricted Project

Jun 3 2020

calixte updated the summary of D81060: [profile] Remove useless msync when dumping gcda files.
Jun 3 2020, 9:53 AM · Restricted Project
calixte created D81060: [profile] Remove useless msync when dumping gcda files.
Jun 3 2020, 1:35 AM · Restricted Project

May 8 2020

calixte accepted D79556: [gcov] Fix simultaneous .gcda creation/lock.

Good catch.

May 8 2020, 2:39 AM · Restricted Project
calixte created D79621: [compiler-rt] Reduce the number of threads in gcov test to avoid failure.
May 8 2020, 2:38 AM · Restricted Project

May 7 2020

calixte added a comment to D54599: [Profile] Avoid race condition when dumping GCDA files..

I wonder if https://reviews.llvm.org/D76206 didn't fix this too

Sorry, I didn't notice this patch.
Probably D76206 and D79556 fix this too.

May 7 2020, 8:29 AM

Apr 24 2020

calixte updated the diff for D78477: [profile] Don't crash when forking in several threads.

Fix nits.

Apr 24 2020, 4:17 AM · Restricted Project, Restricted Project, Restricted Project

Apr 20 2020

calixte updated the diff for D78477: [profile] Don't crash when forking in several threads.

Export symbol for Darwin target

Apr 20 2020, 2:39 AM · Restricted Project, Restricted Project, Restricted Project
calixte created D78477: [profile] Don't crash when forking in several threads.
Apr 20 2020, 2:06 AM · Restricted Project, Restricted Project, Restricted Project

Apr 16 2020

calixte abandoned D75436: [profile] Remove fork management from code coverage.
Apr 16 2020, 8:54 AM · Restricted Project, Restricted Project

Mar 5 2020

calixte added a comment to D75436: [profile] Remove fork management from code coverage.
In D75436#1903566, @jfb wrote:

Doing fork will still share an output file, right? Doe we currently end up interleaving content from both forks, or does one of them overwrite the other entirely?
I understand that crashing is undesirable, but wrong data isn't really any better.

Mar 5 2020, 4:56 AM · Restricted Project, Restricted Project

Mar 2 2020

calixte created D75436: [profile] Remove fork management from code coverage.
Mar 2 2020, 12:43 AM · Restricted Project, Restricted Project

Feb 24 2020

calixte created D75080: [profile] gcov_mutex must be static.
Feb 24 2020, 2:38 PM · Restricted Project, Restricted Project

Feb 21 2020

calixte updated the diff for D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.

Fix a typo

Feb 21 2020, 7:18 AM · Restricted Project, Restricted Project, Restricted Project
calixte added inline comments to D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.
Feb 21 2020, 7:18 AM · Restricted Project, Restricted Project, Restricted Project
calixte updated the diff for D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.

Add more comments to explain why we need to lock around the fork

Feb 21 2020, 6:51 AM · Restricted Project, Restricted Project, Restricted Project
calixte added inline comments to D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.
Feb 21 2020, 6:51 AM · Restricted Project, Restricted Project, Restricted Project
calixte updated the diff for D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.

If exec** fails we need to reset the counters since they've have dumped just before to avoid to count them twice.

Feb 21 2020, 6:24 AM · Restricted Project, Restricted Project, Restricted Project
calixte created D74953: [profile] Don't dump counters when forking and don't reset when calling exec** functions.
Feb 21 2020, 4:35 AM · Restricted Project, Restricted Project, Restricted Project

Feb 5 2020

calixte created D74071: [Profile] Avoid deadlock in multithreaded context when forking with coverage enabled.
Feb 5 2020, 9:55 AM · Restricted Project, Restricted Project, Restricted Project

Jan 6 2020

calixte added a comment to D70910: [compiler-rt] Add a critical section when flushing gcov counters.

OK that helps a bit. I still don't understand though: why do you only need to protect flush and nothing else? You're protecting specific variables from being accesses concurrently only though flush, and not through the other paths that access those variables. Are these variables never accessed concurrently from these other functions?

Jan 6 2020, 4:16 AM · Restricted Project, Restricted Project

Dec 12 2019

calixte added a comment to D70910: [compiler-rt] Add a critical section when flushing gcov counters.

@jfb, sorry I thought my commit message was clear enough.
So when coverage is enabled a call to __gcov_flush is inserted just before forkcall:
https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp#L659
So if the parent process is forked in different threads then __gcov_flush is called from different threads.
And so different global variables are accessed asynchronously:
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/profile/GCDAProfiling.c#L104-L108
Initially we saw crashes in our CI: https://bugzilla.mozilla.org/show_bug.cgi?id=1599436
The above test case leads to multiple errors: double-free, "cannot merge previous GCDA file..."
And in debbuging firefox, I saw output_file == NULL (https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/profile/GCDAProfiling.c#L603) where it mustn't.

Dec 12 2019, 11:00 AM · Restricted Project, Restricted Project

Dec 10 2019

calixte added a comment to D70910: [compiler-rt] Add a critical section when flushing gcov counters.

@vsk: the test compiler-rt/trunk/test/profile/instrprof-darwin-exports.c was failing probably because of the missing static on gcov_flush_mutex, could you check that it's ok for you ?

Dec 10 2019, 4:30 AM · Restricted Project, Restricted Project
calixte updated the diff for D70910: [compiler-rt] Add a critical section when flushing gcov counters.

Make symbol gcov_flush_mutex private

Dec 10 2019, 4:30 AM · Restricted Project, Restricted Project
calixte added a reviewer for D70910: [compiler-rt] Add a critical section when flushing gcov counters: vsk.
Dec 10 2019, 4:30 AM · Restricted Project, Restricted Project
calixte reopened D70910: [compiler-rt] Add a critical section when flushing gcov counters.
Dec 10 2019, 1:56 AM · Restricted Project, Restricted Project
calixte added a comment to D70910: [compiler-rt] Add a critical section when flushing gcov counters.

@ahatanak it's probably a problem with Darwin.cpp where I need to add some exported symbols.
@jfb sorry but it fixes issues with fork:

  • we had a lot of crashes in Firefox CI when dumping the GCDAs and so I tried this patch on the CI and no more weird crashes.
  • and a minimal test case to reproduce it:
#include <iostream>
#include <thread>
#include <vector>
#include <unistd.h>
Dec 10 2019, 1:28 AM · Restricted Project, Restricted Project

Dec 3 2019

calixte updated the diff for D70910: [compiler-rt] Add a critical section when flushing gcov counters.

Use HEAD~3 with arc diff

Dec 3 2019, 1:51 AM · Restricted Project, Restricted Project
calixte updated the diff for D70910: [compiler-rt] Add a critical section when flushing gcov counters.

Remove unused function

Dec 3 2019, 1:37 AM · Restricted Project, Restricted Project
calixte updated the diff for D70910: [compiler-rt] Add a critical section when flushing gcov counters.

Use SRWLock instead of a CRITICAL_SECTION.

Dec 3 2019, 1:23 AM · Restricted Project, Restricted Project

Dec 2 2019

calixte retitled D70910: [compiler-rt] Add a critical section when flushing gcov counters from Add a critical section when flushing gcov counters to [compiler-rt] Add a critical section when flushing gcov counters.
Dec 2 2019, 10:43 AM · Restricted Project, Restricted Project
calixte created D70910: [compiler-rt] Add a critical section when flushing gcov counters.
Dec 2 2019, 10:25 AM · Restricted Project, Restricted Project

Nov 28 2018

calixte updated the diff for D54599: [Profile] Avoid race condition when dumping GCDA files..

Make a more concise code.

Nov 28 2018, 9:18 AM
calixte updated the diff for D55003: Two extra spaces have been added in unittests/Analysis/TargetLibraryInfoTest.cpp when ran clang-format-diff on it.

Remove spaces at the beginning of lines

Nov 28 2018, 7:10 AM
calixte created D55003: Two extra spaces have been added in unittests/Analysis/TargetLibraryInfoTest.cpp when ran clang-format-diff on it.
Nov 28 2018, 7:06 AM
calixte added inline comments to rL346318: Fix unit tests after patch https://reviews.llvm.org/rL346313.
Nov 28 2018, 3:42 AM

Nov 17 2018

calixte committed rL347144: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to….
[Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to…
Nov 17 2018, 11:44 AM
calixte committed rC347144: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to….
[Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to…
Nov 17 2018, 11:44 AM
calixte closed D54600: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov (after revert https://reviews.llvm.org/rL346659).
Nov 17 2018, 11:44 AM
calixte updated the diff for D54599: [Profile] Avoid race condition when dumping GCDA files..
  • Update code to take into account what's wrong when fd==-1
  • Add a test for GCOV_PREFIX
Nov 17 2018, 8:52 AM
calixte abandoned D54213: [Profile] Mark gcov-fork test as failinf for i386 target.
Nov 17 2018, 3:52 AM

Nov 15 2018

calixte updated the summary of D54599: [Profile] Avoid race condition when dumping GCDA files..
Nov 15 2018, 2:35 PM
calixte added inline comments to D54599: [Profile] Avoid race condition when dumping GCDA files..
Nov 15 2018, 2:26 PM
calixte updated the summary of D54599: [Profile] Avoid race condition when dumping GCDA files..
Nov 15 2018, 2:25 PM
calixte created D54600: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov (after revert https://reviews.llvm.org/rL346659).
Nov 15 2018, 2:03 PM
calixte created D54599: [Profile] Avoid race condition when dumping GCDA files..
Nov 15 2018, 1:50 PM

Nov 12 2018

calixte added a comment to rL346644: [GCOV] fix test after patch rL346642.

@RKSimon, thanks, I reverted.

Nov 12 2018, 7:03 AM
calixte committed rL346659: Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c….
Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c…
Nov 12 2018, 7:00 AM
calixte added a reverting change for rL346642: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to…: rL346659: Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c….
Nov 12 2018, 7:00 AM
calixte added a reverting change for rL346644: [GCOV] fix test after patch rL346642: rL346659: Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c….
Nov 12 2018, 7:00 AM
calixte committed rC346659: Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c….
Revert rL346644, rL346642: the added test test/CodeGen/code-coverage-filter.c…
Nov 12 2018, 6:59 AM
calixte added a comment to rL346644: [GCOV] fix test after patch rL346642.

@RKSimon, do you have an example fo failure, because I didn't get anything on mail nor on irc channel ?

Nov 12 2018, 6:42 AM
calixte committed rC346644: [GCOV] fix test after patch rL346642.
[GCOV] fix test after patch rL346642
Nov 12 2018, 1:55 AM
calixte committed rL346644: [GCOV] fix test after patch rL346642.
[GCOV] fix test after patch rL346642
Nov 12 2018, 1:55 AM
calixte closed D54416: [GCOV] fix test after patch rL346642.
Nov 12 2018, 1:55 AM
calixte updated the summary of D54416: [GCOV] fix test after patch rL346642.
Nov 12 2018, 1:49 AM
calixte created D54416: [GCOV] fix test after patch rL346642.
Nov 12 2018, 1:48 AM
calixte committed rL346642: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to….
[Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to…
Nov 12 2018, 1:15 AM
calixte committed rC346642: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to….
[Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to…
Nov 12 2018, 1:15 AM
calixte closed D52034: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov.
Nov 12 2018, 1:15 AM
calixte committed rL346641: [GCOV] Add options to filter files which must be instrumented..
[GCOV] Add options to filter files which must be instrumented.
Nov 12 2018, 1:04 AM
calixte closed D52033: [GCOV] Add options to filter files which must be instrumented..
Nov 12 2018, 1:04 AM
calixte updated the diff for D52034: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov.

Forgot the ellipsis in the release notes.

Nov 12 2018, 12:50 AM
calixte updated the diff for D52034: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov.

Update ReleaseNotes

Nov 12 2018, 12:47 AM

Nov 8 2018

calixte committed rL346409: [Profile] The test for gcov-fork seems to be ok on arm.
[Profile] The test for gcov-fork seems to be ok on arm
Nov 8 2018, 8:18 AM
calixte committed rCRT346409: [Profile] The test for gcov-fork seems to be ok on arm.
[Profile] The test for gcov-fork seems to be ok on arm
Nov 8 2018, 8:18 AM
calixte closed D54263: [Profile] The test for gcov-fork seems to be ok on arm.
Nov 8 2018, 8:18 AM
calixte created D54263: [Profile] The test for gcov-fork seems to be ok on arm.
Nov 8 2018, 7:19 AM

Nov 7 2018

calixte created D54213: [Profile] Mark gcov-fork test as failinf for i386 target.
Nov 7 2018, 9:09 AM
calixte committed rL346329: [Profile] Mark gcov-fork test as failing for arm.
[Profile] Mark gcov-fork test as failing for arm
Nov 7 2018, 8:00 AM
calixte committed rCRT346329: [Profile] Mark gcov-fork test as failing for arm.
[Profile] Mark gcov-fork test as failing for arm
Nov 7 2018, 8:00 AM
calixte closed D54209: [Profile] Mark gcov-fork test as failing for arm.
Nov 7 2018, 8:00 AM
calixte created D54209: [Profile] Mark gcov-fork test as failing for arm.
Nov 7 2018, 7:26 AM
calixte committed rL346318: Fix unit tests after patch https://reviews.llvm.org/rL346313.
Fix unit tests after patch https://reviews.llvm.org/rL346313
Nov 7 2018, 6:49 AM
calixte closed D54208: Fix unit tests after patch https://reviews.llvm.org/rL346313.
Nov 7 2018, 6:48 AM
calixte updated the diff for D54208: Fix unit tests after patch https://reviews.llvm.org/rL346313.

Fix nit.

Nov 7 2018, 6:47 AM
calixte added inline comments to D54208: Fix unit tests after patch https://reviews.llvm.org/rL346313.
Nov 7 2018, 6:47 AM
calixte created D54208: Fix unit tests after patch https://reviews.llvm.org/rL346313.
Nov 7 2018, 6:42 AM
calixte committed rL346314: [Profile] Fix fork test and add tests for execlp and execvp after patch https….
[Profile] Fix fork test and add tests for execlp and execvp after patch https…
Nov 7 2018, 5:53 AM
calixte committed rCRT346314: [Profile] Fix fork test and add tests for execlp and execvp after patch https….
[Profile] Fix fork test and add tests for execlp and execvp after patch https…
Nov 7 2018, 5:53 AM
calixte closed D54167: [Profile] Fix fork test and add tests for execlp and execvp after patch https://reviews.llvm.org/D53593.
Nov 7 2018, 5:53 AM
calixte committed rL346313: [GCOV] Flush counters before to avoid counting the execution before fork twice….
[GCOV] Flush counters before to avoid counting the execution before fork twice…
Nov 7 2018, 5:53 AM
calixte closed D53593: [GCOV] Flush counters before to avoid counting the execution before fork twice and for exec** functions we must flush before the call.
Nov 7 2018, 5:53 AM
calixte updated the diff for D54167: [Profile] Fix fork test and add tests for execlp and execvp after patch https://reviews.llvm.org/D53593.

Fix execvp test.

Nov 7 2018, 5:29 AM
calixte updated the diff for D53593: [GCOV] Flush counters before to avoid counting the execution before fork twice and for exec** functions we must flush before the call.

Handle execve, fix issues with execvp and remove _WIN32.

Nov 7 2018, 5:29 AM
calixte accepted D53988: Close file mapping handle on Windows, so flushed gcda files can be removed while the process is in execution.

Looks good to me.

Nov 7 2018, 1:30 AM
calixte added a reviewer for D51974: [GCOV] Handle correctly multiple CUs when profiling: marco-c.
Nov 7 2018, 1:07 AM
calixte updated the diff for D52034: [Clang] Add options -fprofile-filter-files and -fprofile-exclude-files to filter the files to instrument with gcov.

Update doc.

Nov 7 2018, 12:52 AM

Nov 6 2018

calixte created D54167: [Profile] Fix fork test and add tests for execlp and execvp after patch https://reviews.llvm.org/D53593.
Nov 6 2018, 11:22 AM