Общее количество переключений контекста
cat /proc/PID/sched|grep nr_switches
Добровольное переключение контекста
cat /proc/PID/sched | grep nr_voluntary_switches
Непроизвольное переключение контекста
cat /proc/PID/sched|grep nr_involuntary_switches
, где PID - это идентификатор процесса, который вы хотите отслеживать.
Однако, если вы хотитечтобы получить эту статистику путем исправления (создания перехвата) источника linux, код, связанный с планированием, находится в папке
kernel / sched /
дерева исходного кода.В частности,
kernel / sched / core.c содержит функцию schedule (), которая является кодом планировщика linux.Код CFS (полностью честный планировщик), который является одним из нескольких планировщиков, представленных в Linux, и наиболее часто используемый, присутствует в планировщике
/ kernel / sched / fair.c
() выполняется, когда когда-либо установлен флаг TIF_NEED_RESCHED, поэтому выясните, из каких мест устанавливается этот флаг (используйте cscope на источнике linux), что даст вам представление о типах переключений контекста, происходящих в процессе.