Chromium Code Reviews

Side by Side Diff: docs/ASAN.rst

Issue 2266593002: Subzero: Updated documentation to describe building spec2k benchmarks (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Using AddressSanitizer in Subzero 1 Using AddressSanitizer in Subzero
2 ================================= 2 =================================
3 3
4 AddressSanitizer is a powerful compile-time tool used to detect and report 4 AddressSanitizer is a powerful compile-time tool used to detect and report
5 illegal memory accesses. For a full description of the tool, see the original 5 illegal memory accesses. For a full description of the tool, see the original
6 `paper 6 `paper
7 <https://www.usenix.org/system/files/conference/atc12/atc12-final39.pdf>`_. 7 <https://www.usenix.org/system/files/conference/atc12/atc12-final39.pdf>`_.
8 AddressSanitizer is only supported on native builds of .pexe files and cannot be 8 AddressSanitizer is only supported on native builds of .pexe files and cannot be
9 used in production. 9 used in production.
10 10
(...skipping 25 matching lines...)
36 pydir/szbuild.py --fsanitize-address hello.pexe 36 pydir/szbuild.py --fsanitize-address hello.pexe
37 37
38 Handling Wide Loads 38 Handling Wide Loads
39 =================== 39 ===================
40 40
41 Since AddressSanitizer is implemented only in Subzero, the target .pexe may 41 Since AddressSanitizer is implemented only in Subzero, the target .pexe may
42 contain widened loads that would cause false positives. To avoid reporting such 42 contain widened loads that would cause false positives. To avoid reporting such
43 loads as errors, we treat any word-aligned, four byte load as a potentially 43 loads as errors, we treat any word-aligned, four byte load as a potentially
44 widened load and only check the first byte of the loaded word against shadow 44 widened load and only check the first byte of the loaded word against shadow
45 memory. 45 memory.
46
47 Building SPEC2000 Benchmark Suite
48 =================================
49
50 Most of the SPEC2000 benchmarks can be built with Subzero and AddressSanitizer,
51 however due to the nature of our solution for LLVM's aggressive inlining of
52 calloc, 300.twolf and 252.eon will not build. AddressSanitizer correctly finds
53 bugs in 197.parser and 253.perlbmk. 176.gcc crashes for unknown reasons. Among
54 the benchmarks that do run to completion, the average slowdown introduced is
55 4.6x.
56
57 To build the benchmarks with AddressSanitizer, some small changes to the
58 Makefile are needed. They can be found `here
59 <https://codereview.chromium.org/2266553002/>`_.
60
61 Once the Makefile has been patched, build and run with these commands::
62
63 cd native_client/tests/spec2k
64 ./run_all.sh BuildBenchmarks 0 SetupPnaclX8632Opt <benchmarks>
65 ../../toolchain_build/src/subzero/pydir/szbuild_spec2k.py -v -O2 \
66 --fsanitize-address <benchmarks>
67 ./run_all.sh RunTimedBenchmarks SetupGccX8632Opt train <benchmarks>
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine