Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Collecting information about thread scheduling on Linux

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?

like image 263
Simon Marlow Avatar asked Jul 07 '10 19:07

Simon Marlow


1 Answers

The Linux perf tool is a general purpose kernel-supported profiling tool. Among other things, it can record events, which includes task scheduling events.

like image 138
caf Avatar answered Oct 03 '22 20:10

caf