C++ ThreadSanitizer works on arm64. So making it work for Go should be
a modest amount of work.
ThreadSanitizer does not work on any 32-bit platforms. It assumes that
it can reserve huge continuous chunks of address space for various
things.
ThreadSanitizer is not dependend on underlying hardware memory model,
it check against abstract language memory model. So even if you
production code runs on arm32, you can well test it for races on
x86_64.

On Fri, Feb 24, 2017 at 4:28 AM, Ian Lance Taylor <i...@golang.org> wrote:
> [ +dvyukov ]
>
> On Thu, Feb 23, 2017 at 1:34 PM, Owen Waller <go-n...@kulawe.com> wrote:
>> Hi Ian,
>>
>> Go's race detector is based on and uses Thread Sanitizer, which has
>> only been implemented for amd64.  I'm not aware of any effort to
>> extend thread sanitizer to other processors.  That would have been
>> done before there is any likelihood of Go supporting it.
>>
>> Ian
>>
>>
>> Thanks for the help.
>>
>> After a little digging, the best I can come up with is that there might be
>> an AARCH64 port. That would cover ARM8 64-bit at least.
>> The reference I've found is on the thread sanitizer google group is, here:
>> https://groups.google.com/forum/#!searchin/thread-sanitizer/Port$20to$20ARMv7|sort:relevance/thread-sanitizer/14rRfPAr8vE/dJJ1fzrYAAAJ
>> [1]
>> Which leads to a discussion on llvm.org which suggests it's done( maybe...)
>> https://reviews.llvm.org/D11484
>>
>> What would be the best way to confirm if the AArch64 support exists, as that
>> seems to be a prerequisite for at least an ARM8 race detector?
>>
>> I can't find any existing solution to the 32bit ARMs - v5, v6, v7. Thread
>> Sanitizer seems to need a whole heap of memory so there is a very real risk
>> out running out of RAM. But then the typical program sizes that these cores
>> run are much smaller. If we were talking in terms of programs that only used
>> 10s to 100's of Megs of RAM - you'd have a reasonably good chance of x5-10
>> those amounts being free. So maybe there would be a case to try and port it
>> to 32 bit platforms, but I admit that is a much bigger question.
>>
>> Owen
>>
>> [1] This post may also be related as it discusses getting the thread
>> sanitizer running on a AMD AArch64 board with a 42 bit VA space.
>> https://groups.google.com/forum/#!searchin/thread-sanitizer/mips$20support%7Csort:relevance/thread-sanitizer/QQ3fOtA7qcM/tycOcC1jq3AJ
>> [2] There also seems to be PPC64 port too
>> https://groups.google.com/forum/#!searchin/thread-sanitizer/ppc$20support|sort:relevance/thread-sanitizer/D-ku2r5cDtU/BbFcY2Gf8qAJ
>> If this is also true then it also opens up using the race detector on the
>> PPC64 go ports.
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to