/proc/timer_stats - Statistiques sur les temporisateurs
- /proc/timer_stats (de Linux 2.6.21 jusqu’à Linux
4.10)
- Il s'agit d'une fonctionnalité de débogage offrant aux
développeurs noyau et espace utilisateur la visibilité sur
l'utilisation ou l'abus des temporisateurs. Elle permet aux
développeurs noyau et espace utilisateur de vérifier que
leur code ne fait pas un usage injustifié des temporisateurs.
L'objectif est d'éviter les réveils inutiles et ainsi
d'optimiser la consommation d'énergie.
- Si cette fonctionnalité est activée dans le noyau
(CONFIG_TIMER_STATS) mais n'est pas utilisée, le
surcoût de temps de traitement est quasiment nul et plutôt
faible sur la taille des structures. Même lorsque la collecte est
activée au moment de l’exécution, son surcoût
est faible : tous les verrous sont par CPU et la recherche est
hachée.
- Le fichier /proc/timer_stats est utilisé à la fois
pour contrôler la fonction d'échantillonnage et lire les
informations échantillonnées.
- La fonction timer_stats n'est pas active au démarrage. La
commande suivante démarre l'échantillonnage :
-
# echo 1 > /proc/timer_stats
- La commande suivante arrête l'échantillonnage :
-
# echo 0 > /proc/timer_stats
- La commande suivante récupère les statistiques :
-
$ cat /proc/timer_stats
- Lorsque l'échantillonnage est activé, chaque lecture depuis
/proc/timer_stats fournira des statistiques nouvellement mises
à jour. Une fois l'échantillonnage désactivé,
les informations échantillonnées sont conservées
jusqu'au démarrage d'une nouvelle période de collecte. Cela
autorise plusieurs lectures.
- Exemple de sortie de /proc/timer_stats :
-
$ cat /proc/timer_stats
Timer Stats Version: v0.3
Sample period: 1.764 s
Collection: active
255, 0 swapper/3 hrtimer_start_range_ns (tick_sched_timer)
71, 0 swapper/1 hrtimer_start_range_ns (tick_sched_timer)
58, 0 swapper/0 hrtimer_start_range_ns (tick_sched_timer)
4, 1694 gnome-shell mod_delayed_work_on (delayed_work_timer_fn)
17, 7 rcu_sched rcu_gp_kthread (process_timeout)
...
1, 4911 kworker/u16:0 mod_delayed_work_on (delayed_work_timer_fn)
1D, 2522 kworker/0:0 queue_delayed_work_on (delayed_work_timer_fn)
1029 total events, 583.333 events/sec
- Les colonnes produites représentent :
- [1]
- le nombre d'évènements, suivi éventuellement (depuis
Linux 2.6.23) de la lettre « D » s'il
s'agit d'un temporisateur différable ;
- [2]
- le PID du processus qui a initialisé le temporisateur ;
- [3]
- le nom du processus qui a initialisé le temporisateur ;
- [4]
- la fonction où le temporisateur a été
initialisé, et, entre parenthèses, la fonction de rappel
associée au temporisateur.
- Durant le cycle de développement de Linux 4.11, ce fichier a
été supprimé pour des raisons de
sécurité, car il exposait des informations à travers
les espaces de noms. De plus, il est possible d’obtenir les
mêmes informations à l’aide des fonctions internes de
traçage du noyau telles que ftrace.
La traduction française de cette page de manuel a
été créée par Christophe Blaess
<https://www.blaess.fr/christophe/>, Stéphan Rafin
<stephan.rafin@laposte.net>, Thierry Vignaud
<tvignaud@mandriva.com>, François Micaux, Alain Portal
<aportal@univ-montp2.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh)
<jean-luc.coulon@wanadoo.fr>, Julien Cristau
<jcristau@debian.org>, Thomas Huriaux
<thomas.huriaux@gmail.com>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau
<fduneau@gmail.com>, Simon Paillard
<simon.paillard@resel.enst-bretagne.fr>, Denis Barbier
<barbier@debian.org>, David Prévot <david@tilapin.org>,
Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr> et Lucien Gentis
<lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.