Как отследить все вызовы функций в ядре Linux во время загрузки

Я новичок в отладке ядра Linux.

Я сталкивался с такими инструментами, как ftrace и gdb. Я хочу видеть все соответствующие вызовы функций, выполняемые при загрузке модуля ядром при его загрузке, такие как вызовы функций, выполняемые графическим драйвером (drm, kms, настройка буферов и т. Д.) И инициализация графического процессора.

Я попытался настроить Grub, добавив

stacktrace trace_event = sched:,timer:, irq: * trace_buf_size = 40M

и я получил следующий вывод

       Depth    Size   Location    (58 entries)
        -----    ----   --------
  0)     4096      68   ftrace_call+0x5/0xb
  1)     4028       8   mempool_alloc_slab+0x13/0x20
  2)     4020      56   mempool_alloc+0x4e/0x140
  3)     3964      12   scsi_sg_alloc+0x48/0x60
  4)     3952      44   __sg_alloc_table+0xd6/0x130
  5)     3908      32   scsi_alloc_sgtable+0x81/0xe0
  6)     3876      20   scsi_init_sgtable+0x27/0x70
  7)     3856      36   scsi_init_io+0x3c/0x1c0
  8)     3820     140   sd_setup_read_write_cmnd+0x3c/0xb70
  9)     3680       8   sd_init_command+0x2d/0xc0
 10)     3672      16   scsi_setup_cmnd+0xe1/0x170
 11)     3656      24   scsi_prep_fn+0xc4/0x170
 12)     3632      36   blk_peek_request+0x13b/0x280
 13)     3596      68   scsi_request_fn+0x38/0x5f0
 14)     3528      12   __blk_run_queue+0x2e/0x40
 15)     3516      40   blk_queue_bio+0x38c/0x3a0
 16)     3476      40   generic_make_request+0xd0/0x1b0
 17)     3436      96   submit_bio+0x67/0x180
 18)     3340      28   submit_bh_wbc+0x115/0x170
 19)     3312      16   bh_submit_read+0x3c/0xb0
 20)     3296      64   __read_extent_tree_block+0x180/0x210
 21)     3232      76   ext4_find_extent+0x11e/0x2f0
 22)     3156     184   ext4_ext_map_blocks+0x63/0xec0
 23)     2972      96   ext4_map_blocks+0x87/0x540
 24)     2876      60   ext4_getblk+0x52/0x1b0
 25)     2816      24   ext4_bread+0x23/0xa0
 26)     2792      76   __ext4_read_dirblock+0x27/0x3f0
 27)     2716      72   dx_probe+0x36/0x5e0
 28)     2644     160   ext4_find_entry+0x457/0x610
 29)     2484      60   ext4_lookup+0x5c/0x230
 30)     2424      16   lookup_real+0x17/0x50
 31)     2408      28   __lookup_hash+0x40/0x60
 32)     2380      52   walk_component+0x218/0x2f0
 33)     2328      52   link_path_walk+0x149/0x530
 34)     2276     120   path_openat+0x7f/0x1120
 35)     2156     152   do_filp_open+0x68/0xe0
 36)     2004      40   file_open_name+0xf5/0x180
 37)     1964      20   filp_open+0x27/0x50

что мне не очень помогло.

Как мне поступить? Любая помощь будет оценена.

Спасибо

0 ответов

Другие вопросы по тегам