Activer/désactiver printk_time au boot

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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *