Comment NOHZ = On affecte do_timer dans le noyau Linux

Dans une expérience simple j'ai mis NOHZ=OFF et utilisé printk impression que, souvent, le do_timer fonction est appelée. Elle est appelée toutes les 10 ms sur ma machine.

Toutefois, si NOHZ=ON alors il y a beaucoup de gigue dans la façon do_timer est appelée. La plupart du temps, il est appelé toutes les 10 ms, mais il y a des moments où il passe complètement à côté du délais.

J'ai fait des recherches sur les deux do_timer et NOHZ. do_timer est la fonction de responsable de la mise à jour de jiffies valeur et est également responsable de la " round-robin des processus.

NOHZ commutateurs de fonction au large de la hi-res des minuteries sur le système.

Ce que je suis incapable de comprendre, c'est comment peut-salut-res minuteries affecter la do_timer? Même si hi-res matériel est en état de veille de la persistance de l'horloge est plus que capable d'exécuter do_timer toutes les 10 mme. Deuxièmement, si do_timer n'est pas en cours d'exécution lorsque il se doit, cela signifie que certains processus ne sont pas de l'obtention de leur temps partagé, alors qu'ils devraient idéalement être de se. Beaucoup de googler ne montrent que, pour beaucoup de gens de nombreuses applications de commencer à travailler beaucoup mieux lorsque NOHZ=OFF.

Pour faire une longue histoire courte, comment ne NOHZ=ON affecter do_timer?
Pourquoi ne do_timer à côté de ses délais?

source d'informationauteur Eastern Monk | 2012-03-19