I want to collect information about when my threads are scheduled (and descheduled), and on which CPUs, on Linux. I'm happy to collect the information and store it in a file for offline analysis later, since I'll need to merge the scheduling information with other event sources generated by my code. Ideally the information would be collected by the program itself, as I plan to be using all the cores on the machine most of the time, and using an external process to do the sampling would disturb the execution I want to measure.
So is this possible on Linux? What are the options?
The Linux perf tool is a general purpose kernel-supported profiling tool. Among other things, it can record events, which includes task scheduling events.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With