Символы R/T/S/D
представляют различные состояния задачи.
Символ 'R' показывает, что задача находится в TASK_RUNNING Состояние.Символ 'S' показывает, что задача была переведена в состояние TASK_INTERRUPTIBLE .Символ 'D' показывает, что планировщик поставил задачу в состояние TASK_UNINTERRUPTIBLE .Наконец, символ 'T' показывает, что задача в данный момент находится в состоянии TASK_STOPPED .Чтобы понять, как состояния задач можно определить по символам, посмотрите исходный код ядра Linux (4.17): -
TASK_STATE_TO_CHAR_STR macro
#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP"
/* task state bitmask, copied from include/linux/sched.h */
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define __TASK_STOPPED 4
#define __TASK_TRACED 8
/* in tsk->exit_state */
#define EXIT_DEAD 16
#define EXIT_ZOMBIE 32
#define EXIT_TRACE (EXIT_ZOMBIE | EXIT_DEAD)
/* in tsk->state again */
#define TASK_DEAD 64
#define TASK_WAKEKILL 128
#define TASK_WAKING 256
#define TASK_PARKED 512
Этотак же просто, как указание первого символа «R» на первый тип состояния задачи, т. е. TASK_RUNNING
, второго символа «S» на состояние TASK_INTERRUPTIBLE
, так же, как третий символ «D» относится к TASK_UNINTERRUPTIBLE
... это продолжается, и в конце «W» относится к TASK_WAKING
, а «P» относится к TASK_PARKED
.Обратите внимание, что состояние задачи EXIT_TRACE
не соответствует ни одному из символов в строке макроса TASK_STATE_TO_CHAR_STR
.
Что касается вашего второго вопроса, довольно трудно понять, какой вывод представляет perf sched latency
, а какой - perf sched script
.Также трудно понять, как вы анализируете оба выхода.Вы должны помнить, что perf sched latency
суммирует задержки планировщика по задачам.Он показывает вам для каждой задачи, какова ее максимальная задержка, каково ее время выполнения и сколько раз во время ее выполнения происходило переключение контекста, кроме некоторых других деталей.perf sched script
, с другой стороны, сбросит все события планировщика, аналогичные команде perf script
.
Эти две команды очень разные, и любое прямое сравнение неизбежно приведет к неверным выводам.