| Title | Kernel Memory Profiler (kmemtrace) |
|---|---|
| Student | Eduard - Gabriel Munteanu |
| Mentor | Pekka Enberg |
| Abstract | |
|
The project aims to add memory profiling capabilities to the Linux kernel. This will be done by reusing Pekka Enberg's existing patch, which implements much of kmalloc()/kfree() tracing.
Roadmap: 1. Make relayfs usable early on, at least for buffering if VFS functionality is not yet available. Expect larger amounts of data. It must be able to relay/store tracing data beginning after kmem_cache_init(). Can be tested in all sorts of early-called kernel functions. (ready for submission to -mm/mainline) 2. Integrate Pekka's patch with the fixed relayfs. Improve and make it work with SLAB, SLUB, SLOB. Test using the currently available or a crippled version of the userspace tool. (2-3 weeks, working prototype already done) 3. Write a new userspace tool, in C language only. It should be able to handle larger amounts of data with little overhead. This means I will rewrite the Perl code in C. (2-3 weeks) 4. Use this entire infrastructure to deliver a sample analysis of Linux's memory subsystem and prepare (request for comments, ...) the patches for -mm and mainline inclusion. Maintaining the code will follow. (1-2 weeks) 5. Use kmemtrace to hopefully spot existing problems within the Linux kernel and fix them. (whatever time is left) This plan is to be followed roughly in this specific order, to allow for independent, sequential implementation of the required pieces of code. The durations included are estimates (might be overestimates). |
|