DynamoRIO / DynamoRIO/dynamorio

Scheduler Noise Generator

Open
#7,216 1 comment 0 reactions 1 assignee Claimed by @edeiana View on GitHub
Component-DrMemtrace Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Multitenancy in analyzers is currently supported by merging multiple traces into a single directory and running the analyzer on that mix of traces, until #7091 will add multiple input directory support.
On this note, we want to expand our multitenancy capabilities using a noise generator, which will generate trace records to simulate one or more workloads running alongside the target trace(s).
Ideally, these generated records (instructions, reads/writes, syscall markers) will affect a number of aspects of our analyzers (e.g., caches, TLB, context switches).

To implement the noise generator we'll start with a new `reader_t` that doesn't really read records, but generates them.
This `reader_t` will live inside an `input_workload_t`, which is where `scheduler_t` gets its trace records from.
The scheduled sequence of records, which will be interleaved with those coming from the noise generator, is what our analyzers see and operate on.
One missing piece in our current interface is a feedback loop from an analyzer back to the noise generator to adjust the type and frequency of generated records in order to control the effect of the noise on our analyzers.
For example, it would be nice to say: I'd like to add noise that generates an additional X% of cache misses for this trace simulation on `cache_simulator`.
This can't be done statically in a "one size fits all" approach that simply generates Y amount of loads for all simulations, it's going to be simulation-dependent.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.