L’affichage du temps de chargement des différentes parties du kernel, PRINTK_TIME, est une donnée permettant d’identifier les drivers et autres fonctionnalités ralentissant le démarrage du système. Ces données, très utiles lors de la mise au point d’un noyau, peuvent à terme alourdir la lecture des logs remontés du kernel mais les développeurs de cet outils ont prévu la possibilité de le désactiver.
La fonctionnalité PRINTK_TIME affiche le temps consommé par les différentes actions effectuées par le kernel comme dans l’exemple suivant lors de l’insertion d’une clé usb :
asus:~# uname -a Linux asus 2.6.30-1-686 #1 SMP Sat Aug 15 19:11:58 UTC 2009 i686 GNU/Linux asus:~# dmesg | tail -n5 [ 144.536564] sd 3:0:0:0: [sdc] Assuming drive cache: write through [ 144.548278] sd 3:0:0:0: [sdc] Assuming drive cache: write through [ 144.548302] sdc: sdc1 [ 144.556732] sd 3:0:0:0: [sdc] Attached SCSI removable disk [ 146.179311] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! |
La fonctionnalité peut être désactivé par le passage à 0, N ou n de l’entrée « /sys/module/printk/parameters/time » :
asus:~# cat /sys/module/printk/parameters/time Y asus:~# echo 0 > /sys/module/printk/parameters/time asus:~# cat /sys/module/printk/parameters/time N asus:~# dmesg | tail -n5 sd 4:0:0:0: [sdc] Mode Sense: 45 00 00 08 sd 4:0:0:0: [sdc] Assuming drive cache: write through sd 4:0:0:0: [sdc] Assuming drive cache: write through sdc: sdc1 sd 4:0:0:0: [sdc] Attached SCSI removable disk FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! |
La ré activation de printk_time consiste à passer l’entrée « /sys/module/printk/parameters/time » à 1, Y ou y.
Pour désactiver l’affichage du temps consommé dès le boot du système, passer l’argument « printk.time=0 » au noyau.
Pour grub, modifier « /boot/grub/menu.lst » :
... title Debian GNU/Linux, kernel 2.6.30-1-686 root (hd0,1) kernel /boot/vmlinuz-2.6.30-1-686 root=/dev/sda2 ro vga=785 resume2=swap:/dev/sda1 printk.time=0 initrd /boot/initrd.img-2.6.30-1-686 ... |
Il est ensuite toujours possible de réactiver la fonctionnalité par l’entrée sysfs vue précédemment.
Enfin la suppression de la fonctionnalité printk_time ce fait par re-compilation du kernel en désactivant l’entrée :
Kernel hacking ---> [ ] Show timing information on printks |