SystemTap полезен для такого рода вещей. Для этого есть стандартный пример sched_switch.stp .
Однако он не измеряет истекшее время переключения. Это кажется хитрым, по крайней мере, по нескольким причинам. Во-первых, вам нужно будет выбрать подходящий зонд для входа и выхода, чтобы измерить дельту, и сейчас я ничего не нахожу. (Вход в ядро или выход из него в соответствующих процессах может быть неплохим приближением? Возможно, для этого есть кое-что, хотя я не вижу этого сейчас.) Во-вторых, если вы спрашиваете, в какой степени стоит избегать переключений контекста, было бы неполной картиной, если бы вы не учитывали лишние ошибки в кэше ЦП при частом переключении задач, а они появляются позже. Я думаю, что единственный хороший способ получить ответ может быть экспериментальным путем. В частности, вы можете попробовать настроить параметры планирования (см. cfs-tuning.pdf ), чтобы увидеть, как более частые переключения контекста влияют на скорость вашей программы.