Hay un parche del programador del kernel de Linux ahora en cola a través de la rama sched/core de TIP que puede ayudar con la programación de tareas en los procesadores AMD que tienen múltiples cachés de último nivel (LLC/caché L3) por dado. Esta pequeña mejora se produjo después de un descubrimiento por parte de un desarrollador del kernel de Linux en su escritorio AMD Zen 2.

Este cambio que debe fusionarse para Linux 6.5 ahora que está en la rama sched/core de tip/tip.git es una implementación select_idle_sibling() compatible con varias LLC. Actualmente, cuando el programador busca una CPU inactiva en el dominio del programador, no buscaría fuera del grupo actual de núcleos que comparten una LLC. Pero ahora, con esta versión de múltiples LLC, considerará otras LLC en caso de que la LLC local se quede vacía.

El parche del veterano ingeniero del kernel de Linux Peter Zijlstra explica:

sched/fair: Multi-LLC select_idle_sibling()

[El desarrollador de Linux, Tejun Heo] informó que cuando dirige colas de trabajo hacia un LLC específico en su máquina Zen2 con 3 núcleos/LLC y 4 LLC en total, obtiene un tiempo de inactividad significativo.

Esto se debe, por supuesto, a cómo select_idle_sibling() no considerará nada fuera de la LLC local, y dado que todas estas tareas son de ejecución corta, el balanceador de carga inactivo periódico no es efectivo.

Y si bien es bueno mantener la caché de trabajo local, es mejor no tener un tiempo de inactividad significativo. Por lo tanto, haga que select_idle_sibling() pruebe otras LLC dentro del mismo nodo cuando la local quede vacía.

Aquellos con sistemas AMD modernos en particular y que deseen probar este parche antes de lo esperado La ventana de combinación de Linux 6.5 puede encontrarla a través de la rama sched/core.

Categories: IT Info