[all-commits] [llvm/llvm-project] 900d8a: [profile] Fix file contention causing dropped coun...

Hans via All-commits all-commits at lists.llvm.org
Wed Nov 27 06:55:33 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 900d8a9a3b4efeefddd310e92219741d98e7270b
      https://github.com/llvm/llvm-project/commit/900d8a9a3b4efeefddd310e92219741d98e7270b
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2019-11-27 (Wed, 27 Nov 2019)

  Changed paths:
    M compiler-rt/lib/profile/InstrProfilingUtil.c
    A compiler-rt/test/profile/Windows/Inputs/instrprof-multiprocess.c
    A compiler-rt/test/profile/Windows/instrprof-multiprocess.test
    A compiler-rt/test/profile/Windows/lit.local.cfg.py

  Log Message:
  -----------
  [profile] Fix file contention causing dropped counts on Windows under -fprofile-generate

See PR43425:
https://bugs.llvm.org/show_bug.cgi?id=43425

When writing profile data on Windows we were opening profile file with
exclusive read/write access.

In case we are trying to write to the file from multiple processes
simultaneously, subsequent calls to CreateFileA would return
INVALID_HANDLE_VALUE.

To fix this, I changed to open without exclusive access and then take a
lock.

Patch by Michael Holman!

Differential revision: https://reviews.llvm.org/D70330




More information about the All-commits mailing list