[PATCH] D86694: [scudo] Allow -fsanitize=scudo on Linux and Windows (WIP, don't land as is)
Russell Gallop via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 14 12:36:01 PDT 2020
russell.gallop added a comment.
In D86694#2270433 <https://reviews.llvm.org/D86694#2270433>, @aganea wrote:
> Thanks for working on this @russell.gallop!
>
> I've reproduced your tests, please see below. The only difference is that I've used a ThinLTO build for stage2:
Thanks. It's good to know they're reproducible, and that it scales better than the default allocator.
> (a hardware CRC or AES implemention will certainly help for Scudo)
Actually this wasn't too hard to try out. I added "-msse4.2" to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (as suggested in scudo_allocator.cpp). This helps, but scudo is still a bit behind the default allocator for me on 6 cores:
> set SCUDO_OPTIONS=allocator_release_to_os_interval_ms=-1:QuarantineSizeKb=0:ThreadLocalQuarantineSizeKb=0:DeleteSizeMismatch=0:DeallocationTypeMismatch=0
> hyperfine.exe -m 5 -w 1 "cd stage3\repro && f:\git\llvm-project\stage2\bin\lld-link @response.txt" "cd stage3_scudo\repro && f:\git\llvm-project\stage2_scudo\bin\lld-link @response.txt"
Benchmark #1: cd stage3\repro && f:\git\llvm-project\stage2\bin\lld-link @response.txt
Time (mean ± σ): 269.922 s ± 2.706 s [User: 0.0 ms, System: 18.6 ms]
Range (min … max): 265.969 s … 272.188 s 5 runs
Benchmark #2: cd stage3_scudo\repro && f:\git\llvm-project\stage2_scudo\bin\lld-link @response.txt
Time (mean ± σ): 285.522 s ± 0.440 s [User: 12.3 ms, System: 9.9 ms]
Range (min … max): 284.907 s … 286.056 s 5 runs
Summary
'cd stage3\repro && f:\git\llvm-project\stage2\bin\lld-link @response.txt' ran
1.06 ± 0.01 times faster than 'cd stage3_scudo\repro && f:\git\llvm-project\stage2_scudo\bin\lld-link @response.txt'
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86694/new/
https://reviews.llvm.org/D86694
More information about the llvm-commits
mailing list