DynamoRIO / DynamoRIO/dynamorio

Inject system call kernel trace templates in raw2trace

Open
#6,495 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Today drmemtrace supports tracing kernel execution during system calls using `-enable_kernel_tracing`, but this feature is available only on x86 machines with the Intel-PT feature. Another possible way to get user+kernel traces is to collect templates for system call kernel execution using QEMU/Gem5 etc and then inject them using raw2trace at the system call marker locations in the user-space trace.

Such traces would not have the actual kernel execution done during system calls, but they may still be useful to model certain aspects of the application's execution. E.g. a cache simulator may yield better results for user-space MPKI because the kernel interference is modelled to some extent. More experimentation should reveal how useful this method can be.

To start, we can collect and inject only one trace template per system call, but later we may collect multiple trace templates for each system call, differentiated perhaps by its arguments or the return value and inject the appropriate one in the trace during raw2trace. We may also adjust some aspects of the trace template while injecting it; e.g. use a different base address for the kernel code or data accesses.

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.