[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