linuxkit/projects/memorizer/README.md
Nathan Dautenhahn b47c64f525 Add Memorizer to projects
This commits an initial version of the Memorizer tracing tool. It collects and
outputs detailed data on the objects (traced from kmalloc/kmem_cache_alloc) and
accesses, tracking the context of each event with respect to thread ID, program
counter, and for allocations name of process.

Signed-off-by: Nathan Dautenhahn <ndd@cis.upenn.edu>
2017-07-20 16:05:03 -04:00

34 lines
1.2 KiB
Markdown

# Memorizer
Memorizer is a tool to trace fine-grained intra-kernel
operations. The goal is to track interactions with memory
objects for the purpose of analyzing fine-grained
interactions amongst components and execution contexts.
Memorizer tracks the following object operations: creation
(alloc), destruction (free), modify (store), access (load),
call, and return.
Nathan D. ([@ndauten]) presented the umbrella project,
Opportunistic Privilege Separation (OPS), and Memorizer at
the [7/9/17 LinuxKit SIG](../../reports/2017-07-09.md) and
[slides](http://nathandautenhahn.com/talks/2017-06-21_ops+memorizer-linuxkit-sig/linuxkit-sig-remark.html#1)
## Usage
See [manual usage docs](./docs/memorizer.txt). Be careful
though because if the event queues are not drained then the
system will run out of memory.
For controlled use see [script + readme](./docs/memorizer/).
This script is not automatically inserted into the runtime
yet.
## Issues
- KASAN is reporting some errors within itself. This is
noisy. Can reduce the console log output level to < 3,
e.g., `echo 3 > /proc/sys/kernel/printk`
- Source should be included soon, but for now there is an
image on Docker Hub.