[compiler-rt] 5502bd6 - [profile] Remove useless msync when dumping gcda files
Calixte Denizet via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 14 08:08:17 PDT 2020
Author: Calixte Denizet
Date: 2020-10-14T17:07:20+02:00
New Revision: 5502bd66bb97f7cf3888a869b73091c51fdbba4c
URL: https://github.com/llvm/llvm-project/commit/5502bd66bb97f7cf3888a869b73091c51fdbba4c
DIFF: https://github.com/llvm/llvm-project/commit/5502bd66bb97f7cf3888a869b73091c51fdbba4c.diff
LOG: [profile] Remove useless msync when dumping gcda files
Summary:
According the mmap man page (https://man7.org/linux/man-pages/man2/mmap.2.html) is only required to precisely control updates, so we can safely remove it.
Since gcda files are dumped just before to call exec** functions, dump need to be fast.
On my computer, Firefox built with --coverage needs ~1min40 to display something and in removing msync it needs ~8s.
Reviewers: void
Subscribers: #sanitizers, marco-c, sylvestre.ledru
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D81060
Added:
Modified:
compiler-rt/lib/profile/GCDAProfiling.c
Removed:
################################################################################
diff --git a/compiler-rt/lib/profile/GCDAProfiling.c b/compiler-rt/lib/profile/GCDAProfiling.c
index 405568187241..4293e8f7b5bf 100644
--- a/compiler-rt/lib/profile/GCDAProfiling.c
+++ b/compiler-rt/lib/profile/GCDAProfiling.c
@@ -303,16 +303,11 @@ static void unmap_file() {
mmap_handle = NULL;
#else
- if (msync(write_buffer, file_size, MS_SYNC) == -1) {
+ if (munmap(write_buffer, file_size) == -1) {
int errnum = errno;
- fprintf(stderr, "profiling: %s: cannot msync: %s\n", filename,
+ fprintf(stderr, "profiling: %s: cannot munmap: %s\n", filename,
strerror(errnum));
}
-
- /* We explicitly ignore errors from unmapping because at this point the data
- * is written and we don't care.
- */
- (void)munmap(write_buffer, file_size);
#endif
write_buffer = NULL;
More information about the llvm-commits
mailing list