<div dir="ltr">Merged to 6.0 in r323013</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 20, 2018 at 1:06 AM, Petar Jovanovic via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: petarj<br>
Date: Fri Jan 19 16:06:07 2018<br>
New Revision: 323013<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=323013&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=323013&view=rev</a><br>
Log:<br>
[TSan][MIPS] Expand sanitizer memory space to lower addresses<br>
<br>
MemToShadowImpl() maps lower addresses to a memory space out of sanitizers<br>
range. The simplest example is address 0 which is mapped to 0x2000000000<br>
<br>
static const uptr kShadowBeg     = 0x2400000000ull;<br>
<br>
but accessing the address during tsan execution will lead to a segmentation<br>
fault.<br>
<br>
This patch expands the range used by the sanitizer and ensures that 1/8 of<br>
the maximum valid address in the virtual address spaces is used for shadow<br>
memory.<br>
<br>
Patch by Milos Stojanovic.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D41777" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D41777</a><br>
<br>
Modified:<br>
    compiler-rt/trunk/lib/tsan/<wbr>rtl/tsan_platform.h<br>
<br>
Modified: compiler-rt/trunk/lib/tsan/<wbr>rtl/tsan_platform.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform.h?rev=323013&r1=323012&r2=323013&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>tsan/rtl/tsan_platform.h?rev=<wbr>323013&r1=323012&r2=323013&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/tsan/<wbr>rtl/tsan_platform.h (original)<br>
+++ compiler-rt/trunk/lib/tsan/<wbr>rtl/tsan_platform.h Fri Jan 19 16:06:07 2018<br>
@@ -79,25 +79,27 @@ struct Mapping {<br>
 #define TSAN_MID_APP_RANGE 1<br>
 #elif defined(__mips64)<br>
 /*<br>
-C/C++ on linux/mips64<br>
-0100 0000 00 - 0200 0000 00: main binary<br>
-0200 0000 00 - 1400 0000 00: -<br>
-1400 0000 00 - 2400 0000 00: shadow<br>
-2400 0000 00 - 3000 0000 00: -<br>
-3000 0000 00 - 4000 0000 00: metainfo (memory blocks and sync objects)<br>
-4000 0000 00 - 6000 0000 00: -<br>
-6000 0000 00 - 6200 0000 00: traces<br>
-6200 0000 00 - fe00 0000 00: -<br>
-fe00 0000 00 - ff00 0000 00: heap<br>
-ff00 0000 00 - ff80 0000 00: -<br>
-ff80 0000 00 - ffff ffff ff: modules and main thread stack<br>
+C/C++ on linux/mips64 (40-bit VMA)<br>
+0000 0000 00 - 0100 0000 00: -                                           (4 GB)<br>
+0100 0000 00 - 0200 0000 00: main binary                                 (4 GB)<br>
+0200 0000 00 - 2000 0000 00: -                                         (120 GB)<br>
+2000 0000 00 - 4000 0000 00: shadow                                    (128 GB)<br>
+4000 0000 00 - 5000 0000 00: metainfo (memory blocks and sync objects)  (64 GB)<br>
+5000 0000 00 - aa00 0000 00: -                                         (360 GB)<br>
+aa00 0000 00 - ab00 0000 00: main binary (PIE)                           (4 GB)<br>
+ab00 0000 00 - b000 0000 00: -                                          (20 GB)<br>
+b000 0000 00 - b200 0000 00: traces                                      (8 GB)<br>
+b200 0000 00 - fe00 0000 00: -                                         (304 GB)<br>
+fe00 0000 00 - ff00 0000 00: heap                                        (4 GB)<br>
+ff00 0000 00 - ff80 0000 00: -                                           (2 GB)<br>
+ff80 0000 00 - ffff ffff ff: modules and main thread stack              (<2 GB)<br>
 */<br>
 struct Mapping {<br>
   static const uptr kMetaShadowBeg = 0x4000000000ull;<br>
   static const uptr kMetaShadowEnd = 0x5000000000ull;<br>
   static const uptr kTraceMemBeg   = 0xb000000000ull;<br>
   static const uptr kTraceMemEnd   = 0xb200000000ull;<br>
-  static const uptr kShadowBeg     = 0x2400000000ull;<br>
+  static const uptr kShadowBeg     = 0x2000000000ull;<br>
   static const uptr kShadowEnd     = 0x4000000000ull;<br>
   static const uptr kHeapMemBeg    = 0xfe00000000ull;<br>
   static const uptr kHeapMemEnd    = 0xff00000000ull;<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>