[compiler-rt] r223730 - [asan] move GetRSS from tsan to sanitizer_common
Alexey Samsonov
vonosmas at gmail.com
Tue Dec 9 15:41:32 PST 2014
Yep, I just thought that you're probably going to reuse it somewhere, in
which case it would be worth fixing it.
On Tue, Dec 9, 2014 at 2:21 PM, Kostya Serebryany <kcc at google.com> wrote:
> 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
>>
>
>
--
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141209/9a55a027/attachment.html>
More information about the llvm-commits
mailing list