2009-07-20 8 views
5

¿Cómo se puede configurar la afinidad de la CPU de un proceso en el módulo kernel? En el modo de usuario hay un syscall sched_setaffinity, pero estoy buscando el modo de kernel equivalente.Afinidad del proceso de configuración en modo kernel

En el código del kernel de Linux, también hay una función llamada sched_setaffinity. Se llama desde la función sys_sched_setaffinity que se llama por system_call. Por lo que parece, esta es la función que quiero usar. Sin embargo, el hecho de que tenga el mismo nombre que la llamada al sistema me pone un poco incómodo.

Pero como todos sabemos, lo mejor es intentarlo. Así que lo hice, y mi módulo compilado. Sin embargo, cuando intento cargar el módulo, se queja de que el nombre sched_setaffinity no está definido.

¿Alguna idea?

Respuesta

2

sched_setaffinity no se exporta a los módulos.

Si modifica /usr/src/linux/kernel/sched.c, puede hacer que sched_setaffinity se exporte a los módulos.

long sched_setaffinity(pid_t pid, const struct cpumask *in_mask) 
{ 
... 
} 
+EXPORT_SYMBOL_GPL(sched_setaffinity); 
+0

Eso parece ser. Debido a la naturaleza de lo que estoy trabajando, no es factible modificar el kernel. Aún así, muchas gracias. –

Cuestiones relacionadas