MOPS -- M1 vs Intel
Igor Munkin
The benchmark
We need the workload that...
... uses Lua (for application server)
... uses box (for database on its board)
Igor Munkin changed 4 years agoSlide mode Like Bookmark
Implement sampling profiler in LuaJIT
The desired LuaJIT internal sampling profiler works in the following way:
The profiler selects LuaJIT thread (i.e. Tarantool tx worker thread) and starts profiling it.
During the whole profiling process each time after a certain interval passes, the profiler interrupts the thread's work and gets info on vm-states and which function is performed
When profiling is over, the profiler outputs statistics.
Task: the student has to get familiar with LuaJIT guest stack layout (frame types, Lua-Lua calls, TCO), provide the design for implementing LuaJIT sampling profiler (one can look onto the profiler in LuaVela) and implement this feature.
Introduce guest stack processing to the existing sampling profiler
Igor Munkin changed 4 years agoView mode Like Bookmark
Implement debug info for compiled code
LuaJIT can compile the particular Lua flows to the traces via JIT machinery. The generated trace contains no branches in terms of Lua code; all Lua calls are inlined.
All source-related debug info is stored in Lua functions prototypes. The function prototype is linked to the function's prologue. IR generated by JIT is not fully linked with the bytecode that has been traced, hence we can say nothing about the relations between the traced sources and the compiled mcode.
Task: the student has to get familiar with the relations between Lua sources, Lua bytecode, IR and mcode, provide the design for introducing source-related debug for traces, implement this feature and make the benchmarks.
Implement guest stack processing within Google Breakpad
There is an external tool for recording the compact "minidump" files -- Google Breakpad. This tool can only produce C stack traces from the collected minidumps. However, it would be useful to also see the guest stack traces after processing these minidumps.
Igor Munkin changed 4 years agoView mode Like Bookmark