[compiler-rt] r295664 - Revert "[PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write"

Renato Golin via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 20 07:03:13 PST 2017


Author: rengolin
Date: Mon Feb 20 09:03:12 2017
New Revision: 295664

URL: http://llvm.org/viewvc/llvm-project?rev=295664&view=rev
Log:
Revert "[PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write"

Revert "[PGO] remove unintended debug trace. NFC"

This reverts commit r295469, r295364, as they are unstable on ARM/AArch64.

Removed:
    compiler-rt/trunk/test/profile/Linux/prctl.c
Modified:
    compiler-rt/trunk/lib/profile/InstrProfilingFile.c
    compiler-rt/trunk/lib/profile/InstrProfilingUtil.c
    compiler-rt/trunk/lib/profile/InstrProfilingUtil.h

Modified: compiler-rt/trunk/lib/profile/InstrProfilingFile.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingFile.c?rev=295664&r1=295663&r2=295664&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingFile.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingFile.c Mon Feb 20 09:03:12 2017
@@ -530,7 +530,6 @@ int __llvm_profile_write_file(void) {
   int rc, Length;
   const char *Filename;
   char *FilenameBuf;
-  int PDeathSig = 0;
 
   if (lprofProfileDumped()) {
     PROF_NOTE("Profile data not written to file: %s.\n", 
@@ -557,18 +556,10 @@ int __llvm_profile_write_file(void) {
     return -1;
   }
 
-  // Temporarily suspend getting SIGKILL when the parent exits.
-  PDeathSig = lprofSuspendSigKill();
-
   /* Write profile data to the file. */
   rc = writeFile(Filename);
   if (rc)
     PROF_ERR("Failed to write file \"%s\": %s\n", Filename, strerror(errno));
-
-  // Restore SIGKILL.
-  if (PDeathSig == 1)
-    lprofRestoreSigKill();
-
   return rc;
 }
 

Modified: compiler-rt/trunk/lib/profile/InstrProfilingUtil.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingUtil.c?rev=295664&r1=295663&r2=295664&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingUtil.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingUtil.c Mon Feb 20 09:03:12 2017
@@ -29,11 +29,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#if defined(__linux__)
-#include <signal.h>
-#include <sys/prctl.h>
-#endif
-
 COMPILER_RT_VISIBILITY
 void __llvm_profile_recursive_mkdir(char *path) {
   int i;
@@ -224,21 +219,3 @@ COMPILER_RT_VISIBILITY const char *lprof
 #endif
   return Sep;
 }
-
-COMPILER_RT_VISIBILITY int lprofSuspendSigKill() {
-#if defined(__linux__)
-  int PDeachSig = 0;
-  /* Temporarily suspend getting SIGKILL upon exit of the parent process. */
-  if (prctl(PR_GET_PDEATHSIG, &PDeachSig) == 0 && PDeachSig == SIGKILL)
-    prctl(PR_SET_PDEATHSIG, 0);
-  return (PDeachSig == SIGKILL);
-#else
-  return 0;
-#endif
-}
-
-COMPILER_RT_VISIBILITY void lprofRestoreSigKill() {
-#if defined(__linux__)
-  prctl(PR_SET_PDEATHSIG, SIGKILL);
-#endif
-}

Modified: compiler-rt/trunk/lib/profile/InstrProfilingUtil.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingUtil.h?rev=295664&r1=295663&r2=295664&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingUtil.h (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingUtil.h Mon Feb 20 09:03:12 2017
@@ -51,12 +51,4 @@ int lprofGetHostName(char *Name, int Len
 unsigned lprofBoolCmpXchg(void **Ptr, void *OldV, void *NewV);
 void *lprofPtrFetchAdd(void **Mem, long ByteIncr);
 
-/* Temporarily suspend SIGKILL. Return value of 1 means a restore is needed.
- * Other return values mean no restore is needed.
- */
-int lprofSuspendSigKill();
-
-/* Restore previously suspended SIGKILL. */
-void lprofRestoreSigKill();
-
 #endif /* PROFILE_INSTRPROFILINGUTIL_H */

Removed: compiler-rt/trunk/test/profile/Linux/prctl.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Linux/prctl.c?rev=295663&view=auto
==============================================================================
--- compiler-rt/trunk/test/profile/Linux/prctl.c (original)
+++ compiler-rt/trunk/test/profile/Linux/prctl.c (removed)
@@ -1,36 +0,0 @@
-// RUN: %clang_pgogen -O2 -o %t %s
-// RUN: rm -rf default_*.profraw
-// RUN: %run %t && sleep 1
-// RUN: llvm-profdata show default_*.profraw 2>&1 | FileCheck %s
-
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/prctl.h>
-#include <unistd.h>
-
-#define FAKE_COUNT_SZ 2000000
-/* fake counts to increse the profile size. */
-unsigned long long __attribute__((section("__llvm_prf_cnts")))
-counts[FAKE_COUNT_SZ];
-
-int main(int argc, char **argv) {
-  pid_t pid = fork();
-  if (pid == 0) {
-    int i;
-    int sum = 0;
-    /* child process: sleep 500us and get to runtime before the
-     * main process exits. */
-    prctl(PR_SET_PDEATHSIG, SIGKILL);
-    usleep(500);
-    for (i = 0; i < 5000; ++i)
-      sum += i * i * i;
-    printf("child process (%d): sum=%d\n", getpid(), sum);
-  } else if (pid > 0) {
-    /* parent process: sleep 100us to get into profile runtime first. */
-    usleep(100);
-  }
-  return 0;
-}
-
-// CHECK-NOT: Empty raw profile file




More information about the llvm-commits mailing list