Dear AddressSanitizer developers, I'm thinking about ways to optimize the performance of ASan's allocator. There are a few benchmarks where a large fraction of the overhead comes from the allocator and the quarantine queue, rather than the checks themselves (e.g., gcc from SPEC2006).
When I looked at the allocator, I was surprised that it is implemented inside ASan's runtime library (or rather, in sanitizer_common). This is unlike other intercepted functions such as strcpy, which forward to the implementation from libc. What is the reason for this? Would it be possible to implement asan_malloc as a decorator on top of libc malloc? Or on top of an existing implementation such as tcmalloc? This seems desirable to me because these are highly tuned. It might also simplify the sanitizer codebase. I'm sure this case has been considered. What are the reasons for the current design? Besides this question, I wonder if there are other ways of optimizing the allocator or the quarantine mechanism. If you can think of any (relatively) low-hanging fruit, I'd be motivated to give it a try. Best, Jonas -- You received this message because you are subscribed to the Google Groups "address-sanitizer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
