--- title: "Profiling and Introspection, December 9, 2022" tags: unikraft, profiling datetime: 2022-12-09T15:00:00+02:00 location: Online, Discord (https://bit.ly/UnikraftDiscord), the `#monkey-business` voice channel teams: - profiling participants: - Marc - Gabi - RăzvanD --- ## :dart: Agenda - Steps for introspection and benchmarking ## :closed_book: Discussions MR: Memory consumption is more difficult. MR: Boot time is important. But it requires some tracepoint to be added. MR: It doesn't make sense to face a fixed tracepoint for a C main function. MR: A good tool is an internal hooking mechanism. `ukhook` - you would give it a function name so that function is called beforehand. MR: With `ukhook` we could hook into the main of the application. For Firecracker we could trigger this boot-timer. MR: For the old way of doing it, it wasn't really generic. MR: What might be also a thing to consider is to be able to remove this hooks at runtime. You could install this hook at install and then you deinstall it. MR: The more flexibile way is to do it a runtime. Compiling it could be easier. MR: You would probably define a C function where you define some functions. You could have some header and define the symbols and function hooks. ## :wrench: TODOs and Decisions GM: Look in `kprobes` and in other hooking libraries. GM: Provide a proposal of when / where to do hooking and how to specify the functions to hook (config, build, run time).