[PATCH] D53975: Start adding the supporting code to perform out-of-process allocator enumeration.

Dan Liew via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 2 04:08:05 PDT 2018


delcypher added a comment.

@kcc

In https://reviews.llvm.org/D53975#1284776, @kubamracek wrote:

> In https://reviews.llvm.org/D53975#1284724, @kcc wrote:
>
> > have you considered implementing this fully outside of the sanitizer allocator?
>
>
> Yes, but it would effectively be a downstream change which means longterm maintenance burden on us. We want to avoid that (the need for me or Dan to rush a fix whenever the allocator changes slightly upstream).


Just to add this. The patch you looked at during LLVMDev was effectively "implementing this fully outside of the sanitizer allocator". That patch had out-of-process variants of the important allocator methods and declared them elsewhere so they were only compiled for Darwin. You rightly rejected that patch (because it duplicated a bunch of allocator code) and requested we look at unifying the implementations. This patch is my best attempt at unifying the implementations. I personally think the approach in this patch is much better and I'm glad you pushed us to investigate implementing out-of-process enumeration in this way.

So we've seen both approaches and so we need to decide which has the better trade off for maintainability.

For what it's worth this allocator is the **only** allocator where the issue of having use `ObjectView::IsLocal()` guards actually comes up. None of the other allocators try to modify themselves during chunk enumeration. So `ObjectView::IsLocal()` guards won't appear anywhere else.


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D53975





More information about the llvm-commits mailing list