[compiler-rt] r223730 - [asan] move GetRSS from tsan to sanitizer_common

Kostya Serebryany kcc at google.com
Tue Dec 9 14:21:44 PST 2014


I've just moved the code, did not change it a bit

On Mon, Dec 8, 2014 at 5:35 PM, Alexey Samsonov <vonosmas at gmail.com> wrote:

>
> On Mon, Dec 8, 2014 at 5:23 PM, Kostya Serebryany <kcc at google.com> wrote:
>
>> Author: kcc
>> Date: Mon Dec  8 19:22:59 2014
>> New Revision: 223730
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=223730&view=rev
>> Log:
>> [asan] move GetRSS from tsan to sanitizer_common
>>
>> Modified:
>>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
>>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
>>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
>>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
>>     compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h
>>     compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
>>     compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cc
>>     compiler-rt/trunk/lib/tsan/rtl/tsan_platform_windows.cc
>>
>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h (original)
>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h Mon Dec  8
>> 19:22:59 2014
>> @@ -66,6 +66,7 @@ bool MemoryRangeIsAvailable(uptr range_s
>>  void FlushUnneededShadowMemory(uptr addr, uptr size);
>>  void IncreaseTotalMmap(uptr size);
>>  void DecreaseTotalMmap(uptr size);
>> +uptr GetRSS();
>>
>>  // InternalScopedBuffer can be used instead of large stack arrays to
>>  // keep frame size low.
>>
>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -379,6 +379,34 @@ static void ReadNullSepFileToArray(const
>>    }
>>    (*arr)[count] = 0;
>>  }
>> +
>> +uptr GetRSS() {
>> +  uptr fd = OpenFile("/proc/self/statm", false);
>> +  if ((sptr)fd < 0)
>> +    return 0;
>>
>
> ^^
> You should use internal_iserror() here
>
>
>> +  char buf[64];
>> +  uptr len = internal_read(fd, buf, sizeof(buf) - 1);
>>
> +  internal_close(fd);
>> +  if ((sptr)len <= 0)
>> +    return 0;
>>
>
> ^^ and probably here.
>
>
>> +  buf[len] = 0;
>> +  // The format of the file is:
>> +  // 1084 89 69 11 0 79 0
>> +  // We need the second number which is RSS in 4K units.
>> +  char *pos = buf;
>> +  // Skip the first number.
>> +  while (*pos >= '0' && *pos <= '9')
>> +    pos++;
>> +  // Skip whitespaces.
>> +  while (!(*pos >= '0' && *pos <= '9') && *pos != 0)
>> +    pos++;
>> +  // Read the number.
>> +  uptr rss = 0;
>> +  while (*pos >= '0' && *pos <= '9')
>> +    rss = rss * 10 + *pos++ - '0';
>>
>
> I think you can greatly simplify this by using internal_simple_strtoll()
> function.
>
>
>> +  return rss * 4096;
>> +}
>> +
>>  #endif
>>
>>  static void GetArgsAndEnv(char*** argv, char*** envp) {
>>
>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -317,6 +317,10 @@ MacosVersion GetMacosVersion() {
>>    return result;
>>  }
>>
>> +uptr GetRSS() {
>> +  return 0;
>> +}
>> +
>>  }  // namespace __sanitizer
>>
>>  #endif  // SANITIZER_MAC
>>
>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -375,6 +375,10 @@ uptr internal_rename(const char *oldpath
>>    UNIMPLEMENTED();
>>  }
>>
>> +uptr GetRSS() {
>> +  return 0;
>> +}
>> +
>>  // ---------------------- BlockingMutex ---------------- {{{1
>>  const uptr LOCK_UNINITIALIZED = 0;
>>  const uptr LOCK_READY = (uptr)-1;
>>
>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h (original)
>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h Mon Dec  8 19:22:59
>> 2014
>> @@ -251,7 +251,6 @@ uptr ALWAYS_INLINE GetThreadTraceHeader(
>>  void InitializePlatform();
>>  void FlushShadowMemory();
>>  void WriteMemoryProfile(char *buf, uptr buf_size, uptr nthread, uptr
>> nlive);
>> -uptr GetRSS();
>>
>>  void *internal_start_thread(void(*func)(void*), void *arg);
>>  void internal_join_thread(void *th);
>>
>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc (original)
>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -118,33 +118,6 @@ void WriteMemoryProfile(char *buf, uptr
>>        nlive, nthread);
>>  }
>>
>> -uptr GetRSS() {
>> -  uptr fd = OpenFile("/proc/self/statm", false);
>> -  if ((sptr)fd < 0)
>> -    return 0;
>> -  char buf[64];
>> -  uptr len = internal_read(fd, buf, sizeof(buf) - 1);
>> -  internal_close(fd);
>> -  if ((sptr)len <= 0)
>> -    return 0;
>> -  buf[len] = 0;
>> -  // The format of the file is:
>> -  // 1084 89 69 11 0 79 0
>> -  // We need the second number which is RSS in 4K units.
>> -  char *pos = buf;
>> -  // Skip the first number.
>> -  while (*pos >= '0' && *pos <= '9')
>> -    pos++;
>> -  // Skip whitespaces.
>> -  while (!(*pos >= '0' && *pos <= '9') && *pos != 0)
>> -    pos++;
>> -  // Read the number.
>> -  uptr rss = 0;
>> -  while (*pos >= '0' && *pos <= '9')
>> -    rss = rss * 10 + *pos++ - '0';
>> -  return rss * 4096;
>> -}
>> -
>>  #if SANITIZER_LINUX
>>  void FlushShadowMemoryCallback(
>>      const SuspendedThreadsList &suspended_threads_list,
>>
>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cc (original)
>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -50,10 +50,6 @@ void FlushShadowMemory() {
>>  void WriteMemoryProfile(char *buf, uptr buf_size, uptr nthread, uptr
>> nlive) {
>>  }
>>
>> -uptr GetRSS() {
>> -  return 0;
>> -}
>> -
>>  #ifndef TSAN_GO
>>  void InitializeShadowMemory() {
>>    uptr shadow = (uptr)MmapFixedNoReserve(kShadowBeg,
>>
>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_platform_windows.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_windows.cc?rev=223730&r1=223729&r2=223730&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_platform_windows.cc (original)
>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_platform_windows.cc Mon Dec  8
>> 19:22:59 2014
>> @@ -31,10 +31,6 @@ void FlushShadowMemory() {
>>  void WriteMemoryProfile(char *buf, uptr buf_size, uptr nthread, uptr
>> nlive) {
>>  }
>>
>> -uptr GetRSS() {
>> -  return 0;
>> -}
>> -
>>  void InitializePlatform() {
>>  }
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
>
> --
> Alexey Samsonov
> vonosmas at gmail.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141209/a57b137e/attachment.html>


More information about the llvm-commits mailing list