[llvm-dev] RFC: EfficiencySanitizer working set tool
Derek Bruening via llvm-dev
llvm-dev at lists.llvm.org
Wed Apr 20 10:43:57 PDT 2016
On Wed, Apr 20, 2016 at 1:15 PM, Filipe Cabecinhas <filcab at gmail.com> wrote:
> On Wed, Apr 20, 2016 at 6:44 AM, Derek Bruening via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > We will divide the program execution into regular intervals and record a
> > snapshot of the working set at each interval boundary. An adaptive
> > can keep the number of snapshots bounded across varying total execution
> > by combining adjacent snapshots via logical or. When a snapshot is
> > recorded, the shadow memory is cleared so that the next snapshot starts
> > a blank slate. If we use a 64 byte to 1 byte shadow mapping, we can use
> > upper bits to store up to 8 consecutive snapshots in the shadow memory
> > itself by shifting rather than clearing the shadow memory on a snapshot.
> I forgot to add my previous questions:
> About the working set tool:
> How are you thinking about doing the snapshots? How do you plan to
> sync the several threads?
> Spawning an external process/"thread" (kind of like LSan), or internally?
> I know I'm getting to low(ish)-level details, but if you've already
> thought about this (possibly about several ways to do this), I'd like
> to know more about what avenues you're planning on exploring.
> I'm ok with a "we haven't thought that far ahead about this tool yet" :-)
Our plan is to live with races between shadow memory updates in other
threads and the thread making a copy of the shadow memory. The nature of
the tool means that pinpoint accuracy is not required.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev