GNU/Linux >> Tutoriales Linux >  >> Linux

Origen de un hilo de kworker

Entonces, después de un tiempo encontré la solución. De hecho, Anthon tiene razón, es el subsistema ACPI el que envía interrupciones. En mi system deshabilité las siguientes interrupciones y el hilo de trabajo se calmó.

echo disable > /sys/firmware/acpi/interrupts/gpe1B
echo disable > /sys/firmware/acpi/interrupts/gpe08

Sin embargo, hasta ahora no he identificado cuáles son las IRQ falsas que provienen de gpe08 y gpe1B .


(Me parece que esto está bastante fuera de tema aquí, pero aquí está la respuesta que publiqué en unix.stackexchange.com).

Encontré este hilo en lkml que responde un poco a tu pregunta. (Parece que incluso el propio Linus estaba desconcertado sobre cómo averiguar el origen de esos hilos).

Básicamente, hay dos formas de hacer esto:

$ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
$ cat /sys/kernel/debug/tracing/trace_pipe > out.txt
(wait a few secs)

Para esto necesitará que se compile ftrace en su kernel.

Esto mostrará lo que están haciendo todos los subprocesos y es útil para rastrear múltiples trabajos pequeños.

cat /proc/THE_OFFENDING_KWORKER/stack

Esto generará la pila de un solo hilo haciendo mucho trabajo. Puede permitirle averiguar qué causó que este subproceso específico acaparara la CPU (por ejemplo). THE_OFFENDING_KWORKER es el pid del kworker en la lista de procesos.


Linux
  1. ¿Qué es un usuario de Linux?

  2. ¿Qué es un administrador de sistemas?

  3. ¿Qué hace “lc_all=c”?

  4. Que hace ?

  5. ¿Qué hace Echo $? ¿¿Hacer??

¿Qué es SSH?

¿Qué es SFTP?

¿Qué viene en GNOME 42?

¿Qué es el analfabetismo digital?

¿Qué es Termux en Android?

¿Cuál es la forma más rápida de ejecutar un script?