¿Sabes cuál se define el significado de las constantes en linux/sched.h
:
#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
#define PF_WQ_WORKER 0x00000020 /* I'm a workqueue worker */
¿Qué significa cuando un proceso tiene ambas banderas configuradas (el noveno parámetro en /proc/[pid]/stat
is 0x30
o decimal 48
)?
Solo encontré comentarios breves después de la definición, pero no puedo imaginar ningún sentido.
Respuesta1
Este bit explica el propósito de PF_WQ_WORKER
.
extracto
La cola de trabajo administrada por simultaneidad necesita saber cuándo los trabajadores van a dormir y cuándo se despertarán y, cuando un trabajador se va a dormir, poder despertar a otro trabajador para mantener una simultaneidad adecuada. Este parche introduce
PF_WQ_WORKER
la identificación de trabajadores de la cola de trabajo y agrega los dos ganchos siguientes.
wq_worker_waking_up()
: se llama cuando se despierta a un trabajador.
wq_worker_sleeping()
: se llama cuando un trabajador se va a dormir y puede devolver un puntero a una tarea local que debe despertarse. La tarea devuelta se activa mediantetry_to_wake_up_local()
el método simplificadottwu
que se llama a continuaciónrq lock
y solo puede activar tareas locales.Ambos ganchos están actualmente definidos como
noop
enkernel/workqueue_sched.h
. La implementación posteriorcmwq
los reemplazará con una implementación adecuada.Estos ganchos están codificados de forma rígida, ya que siempre estarán habilitados.
Fuente: [PATCH 4/4] programado: agregar ganchos para la cola de trabajo
Respuesta2
ElPF_VCPU
la bandera está colocada enguest_enter
que es llamado porkvm_guest_enter
que se llama enkvm_arch_vcpu_ioctl_run
. Hasta donde tengo entendido, es una anotación sobre un proceso que se ejecuta dentro de una máquina virtual KVM; En lo que respecta al programador del host, el proceso está activo bajo la apariencia de su máquina virtual. Fueintroducidopara realizar un seguimiento adecuado del tiempo invertido en un proceso que se ejecuta dentro de una VM frente al tiempo invertido por la propia VM.