lottery linux-kernel scheduler perf

linux kernel - lottery - Eventos de Linux: cpu-clock y task-clock-¿cuál es la diferencia?



lottery scheduling (2)

Las herramientas de perf_events Linux (hace algún tiempo llamadas perf_events ) tienen varios eventos de software universales perf_events . Dos de los más básicos son: task-clock y cpu_clock (internamente llamados PERF_COUNT_SW_CPU_CLOCK y PERF_COUNT_SW_TASK_CLOCK ). Pero lo que está mal con ellos es la falta de descripción.

ysdx usuario ysdx reports que man perf_event_open tiene una breve descripción:

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.

Pero la descripción es difícil de entender.

¿Alguien puede dar una respuesta autorizada sobre cómo y cuándo se contabilizan los eventos de task-clock y cpu-clock ? ¿Cómo se relacionan con el programador del kernel de Linux?

¿Cuándo task-clock y cpu-clock darán valores diferentes? ¿Cuál debo usar?


En términos generales: el evento cpu-clock mide el paso del tiempo. Utiliza el reloj de la CPU de Linux como fuente de tiempo.

Aquí hay un artículo detallado sobre cómo encontrar hot spots de ejecución con perf: http://sandsoftwaresound.net/perf/perf-tutorial-hot-spots/

El reloj de tareas le indica qué tan paralelo ha sido su trabajo / cuántos CPU se utilizaron. Este compendio contiene información detallada de la salida generada por perf: https://doc.zih.tu-dresden.de/hpc-wiki/bin/view/Compendium/PerfTools

También hay mucha información aquí: https://.com/a/20378648/8223204


Según este mensaje , miden lo mismo.

Solo difieren cuando muestrean.

cpu-clock está basado en el reloj de pared, por lo que se toman muestras a intervalos regulares en relación con el tiempo de pared. Creo que el reloj de tareas es relativo al tiempo de ejecución de la tarea. Por lo tanto, las muestras se toman a intervalos regulares en relación con el tiempo de ejecución del proceso.

Cuando lo ejecuto en mi aplicación de subprocesos múltiples, de hecho muestra valores casi idénticos.