Linux perf
tools (некоторое время назад называемый perf_events
) имеет несколько встроенных универсальных программных событий. Двумя основными из них являются: task-clock
и cpu_clock
(внутренне называемые PERF_COUNT_SW_CPU_CLOCK
и PERF_COUNT_SW_TASK_CLOCK
). Но что не так с ними - это отсутствие описания.
ysdx пользователь сообщает, что man perf_event_open
имеет краткое описание:
PERF_COUNT_SW_CPU_CLOCK
This reports the CPU clock, a high-resolution per-
CPU timer.
PERF_COUNT_SW_TASK_CLOCK
This reports a clock count specific to the task
that is running.
Но описание трудно понять.
Может ли кто-нибудь дать авторитетный ответ о том, как и когда события task-clock
и cpu-clock
учитываются? Как они относятся к планировщику ядра Linux?
Когда task-clock
и cpu-clock
будут выдавать разные значения? Какой из них я должен использовать?