DynamoRIO / DynamoRIO/dynamorio
Inject system call kernel trace templates in raw2trace
- 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
Assessment
This issue has not been assessed yet.