2 votes

ftrace sur Android ?

J'ai essayé de faire fonctionner ftrace sur Android, mais en vain. J'utilise ICS avec le noyau 3.08. Voici les étapes que j'ai suivies :

  • J'ai utilisé menuconfig et activé toutes les options sous KernelHacking->Tracers. Le .config final qui a été généré avait toutes les options ftrace activées.
  • Création de nouvelles images système et de démarrage avec le zImage généré.
  • Si j'essaie de faire mount -t debugfs nodev /sys/kernel/debug, j'obtiens un message disant 'mount : Device or resource busy". Je suppose qu'il est déjà monté. J'ai essayé de le démonter et de le remonter mais cela n'a rien donné pour moi.
  • Maintenant dans le shell adb je peux déjà voir /sys/kernel/debug créé. Mais si je regarde dans available_tracers tout ce que je peux voir sont blk et nop.
  • Maintenant, si je lance la sortie du fichier de trace, voici ce que j'obtiens :

traceur : nop

       TASK-PID    CPU#    TIMESTAMP  FUNCTION
          | |       |          |         |
 rb_producer-15    [000]   606.337706: ring_buffer_producer_thread: Starting  ring buffer hammer
 rb_producer-15    [000]   616.264577: ring_buffer_producer_thread: End ring buffer hammer
 rb_producer-15    [000]   616.264606: ring_buffer_producer_thread: RunningConsumer at nice: 19
 rb_producer-15    [000]   616.264609: ring_buffer_producer_thread: RunningProducer at nice: 19
 rb_producer-15    [000]   616.264612: ring_buffer_producer_thread: WARNING!!! This test is running at lowest priority.
 rb_producer-15    [000]   616.264614: ring_buffer_producer_thread: Time:  9932418 (usecs)
 rb_producer-15    [000]   616.264616: ring_buffer_producer_thread: Overruns: 0
 rb_producer-15    [000]   616.264619: ring_buffer_producer_thread: Read:  10514159  (by pages)
 rb_producer-15    [000]   616.264621: ring_buffer_producer_thread: Entries:  3491
 rb_producer-15    [000]   616.264623: ring_buffer_producer_thread: Total:  10517650
 rb_producer-15    [000]   616.264625: ring_buffer_producer_thread: Missed:  0
 rb_producer-15    [000]   616.264626: ring_buffer_producer_thread: Hit:  10517650
 rb_producer-15    [000]   616.264629: ring_buffer_producer_thread: Entriesper millisec: 1058
 rb_producer-15    [000]   616.264630: ring_buffer_producer_thread: 945 ns per entry
 rb_producer-15    [000]   616.264633: ring_buffer_producer_thread: Sleeping for 10 secs
 rb_producer-15    [000]   626.261167: ring_buffer_producer_thread: Starting ring buffer hammer

Comment activer les autres options de traçage, comme la fonction ?

Cela ne peut pas être si difficile, surtout quand je lis que des gens ont utilisé ftrace sur Android. Il doit y avoir quelque chose qui m'échappe ici.

Toute aide/suggestion sera très appréciée.

Gracias.

-Kanav

2voto

rostedt Points 21

Ne pas activer RING_BUFFER_BENCHMARK. Il s'agit d'une option de débogage utilisée pour tester le tampon circulaire. Votre sortie montre qu'elle est activée et qu'elle gaspille une grande partie de votre CPU.

0voto

Kano Points 368

Ahh, je l'ai. J'avais oublié de faire un herring_defconfig. J'ai également activé uniquement le traceur de fonctions au lieu de tous les activer. Cela fonctionne maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X