<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 19, 2015 at 8:03 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"><span class="">On Fri, Jan 16, 2015 at 6:05 PM, Alexey Samsonov <<a href="mailto:vonosmas@gmail.com">vonosmas@gmail.com</a>> wrote:<br>
><br>
> On Wed, Jan 14, 2015 at 6:05 PM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>
>><br>
>> Do you mean linux/C++ and 0x020000000000 - 0x100000000000 memory range?<br>
>> If so, I don't see what is broken.<br>
>> I've added the following debug output:<br>
>><br>
>> + Printf("kShadowBeg=%p kHiAppMemBeg=%p shadow=%p ok=%d\n",<br>
>> + kShadowBeg, kHiAppMemBeg, MemToShadow(kHiAppMemBeg),<br>
>> IsShadowMem(MemToShadow(kHiAppMemBeg)));<br>
><br>
><br>
> Have you tried to build and run runtime with TSAN_SHADOW_COUNT=2 ?<br>
> uptr MemToShadow(uptr x) {<br>
> 78 DCHECK(IsAppMem(x));<br>
> 79 return (((x) & ~(kAppMemMsk | (kShadowCell - 1)))<br>
> 80 ^ kAppMemXor) * kShadowCnt;<br>
><br>
> const uptr kHiAppMemBeg = 0x7e8000000000ull;<br>
> const uptr kAppMemMsk = 0x7c0000000000ull;<br>
> const uptr kAppMemXor = 0x020000000000ull;<br>
><br>
> x = 0x7e8000000000ull<br>
> y = (x) & ~(kAppMemMsk | (kShadowCell - 1)) = 0x028000000000ull;<br>
> z = y ^ kAppMemXor = 0x008000000000ull;<br>
> z * kShadowCnt = z * 2 = 0x010000000000ull;<br>
<br>
<br>
</span>OK, now I see.<br>
There is no simple way to fix it, removed in rev 226466.<br>
</blockquote></div><div class="gmail_extra"><br></div>Thank you!<br><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Alexey Samsonov<br><a href="mailto:vonosmas@gmail.com" target="_blank">vonosmas@gmail.com</a></div></div>
</div></div>