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 будут выдавать разные значения? Какой из них я должен использовать?