2 votes

Comment désactiver Lazy Preempt dans le noyau ?

Je suis relativement nouveau dans le monde de Linux et je travaille à la mise en place d'un noyau en temps réel pour des applications robotiques. Je suis sur Ubuntu 14.04, utilisant le noyau 3.14.3 et le patch temps réel 3.14.3-rt5. J'utilise également x86-64.

Il y a une erreur connue où tout le système se bloque sous une certaine charge lorsque la préemption paresseuse est activée. Cela m'est arrivé plusieurs fois maintenant. Ma question est la suivante :

Comment désactiver la préemption paresseuse ?

Je lis pour ajouter NO_PREEMPT_LAZY à la fin de /sys/kernel/debug/sched_features mais lorsque j'essaie de le faire (en utilisant la fonction ~$ sudo vim /sys/kernel/debug/sched_features ), lors de la tentative de sauvegarde et de sortie ( :wq ) Je reçois l'erreur suivante :

"/sys/kernel/debug/sched_features"
"/sys/kernel/debug/sched_features" E667: Fsync failed
WARNING: Original file may be lost or damaged
don't quit the editor until the file is successfully written!
Press ENTER or type command to continue

Si quelqu'un pouvait m'aider à passer le cap de vim Fsync failed ou de désactiver la préemption paresseuse d'une autre manière, je vous en serais très reconnaissant.

0voto

grantbow Points 928

On dirait que vous avez la plupart de vos réponses ailleurs . Ainsi, l'édition de fichiers dans /sys/ et plus particulièrement debugfs cela ne fonctionne pas car il s'agit d'un pseudo-système de fichiers. La meilleure façon est de faire écho >> aux fichiers et de le faire en tant que root puisque vous parlez directement au noyau. Je ne peux pas dire si le code qui implémente les sched_features accepte cette valeur. Le site planificateur est tout à fait complexe .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X