<div dir="ltr">Yeah, I'm going to add one now. But we still need to develop some guidelines now that both sanitizer_common and tools depend on this flag.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 15, 2013 at 6:57 PM, Dmitry Vyukov <span dir="ltr"><<a href="mailto:dvyukov@google.com" target="_blank">dvyukov@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Oct 15, 2013 at 6:55 PM, Sergey Matveev <<a href="mailto:earthdok@google.com">earthdok@google.com</a>> wrote:<br>

>> If bots set verbosity=1, then they already get output from<br>
>> asan/sanitizer_common.<br>
><br>
> No, because setting LSAN_OPTIONS="verbosity=1" did not affect ASan or<br>
> sanitizer_common before your recent changes.<br>
<br>
</div>I see.<br>
We need a separate flag for printing summary. Verbosity>0 has<br>
basically no guarantees about content and amount of output.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On Tue, Oct 15, 2013 at 6:48 PM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>
>><br>
>> On Tue, Oct 15, 2013 at 6:38 PM, Sergey Matveev <<a href="mailto:earthdok@google.com">earthdok@google.com</a>><br>
>> wrote:<br>
>> > Moving verbosity to common flags is a change that should've been<br>
>> > discussed<br>
>> > first. The reason why I didn't move it to common flags is because<br>
>> > verbosity<br>
>> > levels have different interpretations in different tools. For instance,<br>
>> > in<br>
>> > LSan "verbosity=1" basically means "always print summary" (I agree that<br>
>> > it<br>
>> > should've been a separate flag), so all Chromium bots set it to 1 (so<br>
>> > they're going to start dumping a lot of extra output from asan and<br>
>> > sanitizer_common now).<br>
>><br>
>> If bots set verbosity=1, then they already get output from<br>
>> asan/sanitizer_common.<br>
>><br>
>><br>
>> > Generally, I think that if we are to reuse the same flag across<br>
>> > different<br>
>> > modules, we need to clearly define what information belongs at each<br>
>> > verbosity level (i.e. make them more like error levels).<br>
>><br>
>> Agree.<br>
>> We need to unify things. But it may be impossible to do it half-way<br>
>> though.<br>
>><br>
>><br>
>> > On Tue, Oct 15, 2013 at 6:12 PM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> Author: dvyukov<br>
>> >> Date: Tue Oct 15 09:12:26 2013<br>
>> >> New Revision: 192705<br>
>> >><br>
>> >> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=192705&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=192705&view=rev</a><br>
>> >> Log:<br>
>> >> tsan: use verbosity flag in sanitizer_common code directly<br>
>> >> now it's available from common_flags()<br>
>> >><br>
>> >><br>
>> >> Modified:<br>
>> >>     compiler-rt/trunk/lib/lsan/lsan_interceptors.cc<br>
>> >>     compiler-rt/trunk/lib/msan/msan_interceptors.cc<br>
>> >>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h<br>
>> >>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc<br>
>> >>     compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc<br>
>> >><br>
>> >> Modified: compiler-rt/trunk/lib/lsan/lsan_interceptors.cc<br>
>> >> URL:<br>
>> >><br>
>> >> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff</a><br>

>> >><br>
>> >><br>
>> >> ==============================================================================<br>
>> >> --- compiler-rt/trunk/lib/lsan/lsan_interceptors.cc (original)<br>
>> >> +++ compiler-rt/trunk/lib/lsan/lsan_interceptors.cc Tue Oct 15 09:12:26<br>
>> >> 2013<br>
>> >> @@ -221,7 +221,7 @@ INTERCEPTOR(int, pthread_create, void *t<br>
>> >>      pthread_attr_init(&myattr);<br>
>> >>      attr = &myattr;<br>
>> >>    }<br>
>> >> -  AdjustStackSizeLinux(attr, 0);<br>
>> >> +  AdjustStackSizeLinux(attr);<br>
>> >>    int detached = 0;<br>
>> >>    pthread_attr_getdetachstate(attr, &detached);<br>
>> >>    ThreadParam p;<br>
>> >><br>
>> >> Modified: compiler-rt/trunk/lib/msan/msan_interceptors.cc<br>
>> >> URL:<br>
>> >><br>
>> >> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff</a><br>

>> >><br>
>> >><br>
>> >> ==============================================================================<br>
>> >> --- compiler-rt/trunk/lib/msan/msan_interceptors.cc (original)<br>
>> >> +++ compiler-rt/trunk/lib/msan/msan_interceptors.cc Tue Oct 15 09:12:26<br>
>> >> 2013<br>
>> >> @@ -1082,7 +1082,7 @@ INTERCEPTOR(int, pthread_create, void *t<br>
>> >>      attr = &myattr;<br>
>> >>    }<br>
>> >><br>
>> >> -  AdjustStackSizeLinux(attr, common_flags()->verbosity);<br>
>> >> +  AdjustStackSizeLinux(attr);<br>
>> >><br>
>> >>    int res = REAL(pthread_create)(th, attr, callback, param);<br>
>> >>    if (attr == &myattr)<br>
>> >><br>
>> >> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h<br>
>> >> URL:<br>
>> >><br>
>> >> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=192705&r1=192704&r2=192705&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=192705&r1=192704&r2=192705&view=diff</a><br>

>> >><br>
>> >><br>
>> >> ==============================================================================<br>
>> >> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h (original)<br>
>> >> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h Tue Oct 15<br>
>> >> 09:12:26 2013<br>
>> >> @@ -66,7 +66,7 @@ class ThreadLister {<br>
>> >>    int bytes_read_;<br>
>> >>  };<br>
>> >><br>
>> >> -void AdjustStackSizeLinux(void *attr, int verbosity);<br>
>> >> +void AdjustStackSizeLinux(void *attr);<br>
>> >><br>
>> >>  // Exposed for testing.<br>
>> >>  uptr ThreadDescriptorSize();<br>
>> >><br>
>> >> Modified:<br>
>> >> compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc<br>
>> >> URL:<br>
>> >><br>
>> >> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc?rev=192705&r1=192704&r2=192705&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc?rev=192705&r1=192704&r2=192705&view=diff</a><br>

>> >><br>
>> >><br>
>> >> ==============================================================================<br>
>> >> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc<br>
>> >> (original)<br>
>> >> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc<br>
>> >> Tue<br>
>> >> Oct 15 09:12:26 2013<br>
>> >> @@ -16,6 +16,7 @@<br>
>> >>  #if SANITIZER_LINUX<br>
>> >><br>
>> >>  #include "sanitizer_common.h"<br>
>> >> +#include "sanitizer_flags.h"<br>
>> >>  #include "sanitizer_linux.h"<br>
>> >>  #include "sanitizer_placement_new.h"<br>
>> >>  #include "sanitizer_procmaps.h"<br>
>> >> @@ -272,7 +273,7 @@ void GetThreadStackAndTls(bool main, upt<br>
>> >>  #endif  // SANITIZER_GO<br>
>> >>  }<br>
>> >><br>
>> >> -void AdjustStackSizeLinux(void *attr_, int verbosity) {<br>
>> >> +void AdjustStackSizeLinux(void *attr_) {<br>
>> >>    pthread_attr_t *attr = (pthread_attr_t *)attr_;<br>
>> >>    uptr stackaddr = 0;<br>
>> >>    size_t stacksize = 0;<br>
>> >> @@ -284,7 +285,7 @@ void AdjustStackSizeLinux(void *attr_, i<br>
>> >>    const uptr minstacksize = GetTlsSize() + 128*1024;<br>
>> >>    if (stacksize < minstacksize) {<br>
>> >>      if (!stack_set) {<br>
>> >> -      if (verbosity && stacksize != 0)<br>
>> >> +      if (common_flags()->verbosity && stacksize != 0)<br>
>> >>          Printf("Sanitizer: increasing stacksize %zu->%zu\n",<br>
>> >> stacksize,<br>
>> >>                 minstacksize);<br>
>> >>        pthread_attr_setstacksize(attr, minstacksize);<br>
>> >><br>
>> >> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc<br>
>> >> URL:<br>
>> >><br>
>> >> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc?rev=192705&r1=192704&r2=192705&view=diff</a><br>

>> >><br>
>> >><br>
>> >> ==============================================================================<br>
>> >> --- compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (original)<br>
>> >> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc Tue Oct 15<br>
>> >> 09:12:26 2013<br>
>> >> @@ -882,13 +882,7 @@ TSAN_INTERCEPTOR(int, pthread_create,<br>
>> >>    }<br>
>> >>    int detached = 0;<br>
>> >>    pthread_attr_getdetachstate(attr, &detached);<br>
>> >> -<br>
>> >> -#if defined(TSAN_DEBUG_OUTPUT)<br>
>> >> -  int verbosity = (TSAN_DEBUG_OUTPUT);<br>
>> >> -#else<br>
>> >> -  int verbosity = 0;<br>
>> >> -#endif<br>
>> >> -  AdjustStackSizeLinux(attr, verbosity);<br>
>> >> +  AdjustStackSizeLinux(attr);<br>
>> >><br>
>> >>    ThreadParam p;<br>
>> >>    p.callback = callback;<br>
>> >><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> llvm-commits mailing list<br>
>> >> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>> >> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
>> ><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>