[tsan] Increase size of shadow mappings for C/C++ on linux/x86_64 (#70517)
The current TSan mappings for C/C++ on linux/x86_64 have 0.5TB for low app mem, 1.5TB (1.17TB usable) for mid app mem and 1.5TB for high app mem. This can get a bit cramped if the apps are huge, and/or (in the case of mid/high app mem) with significant ASLR entropy (default ASLR setting of 28-bits = 1TB). This patch increases the mapping sizes to 2TB, 5TB, and 6TB for the low, mid and high app regions respectively. This is compatible with up to 30-bits of ASLR entropy. It is difficult to make the mappings any larger, given the 44-bit pointer compression. It also moves the heap region to avoid HeapEnd() overlapping with the newly enlarged high app region. For convenience, we now use kShadowAdd instead of kShadowXor for this set of mappings. This should be roughly equivalent in runtime performance.
parent
3b449bd4
Please register or sign in to comment