块跟踪点显示 dev 0,0。这不是无效吗?


# trace-cmd record $OPTS systemctl suspend
# dmesg
...
[21976.161716] PM: suspend entry (deep)
[21976.161720] PM: Syncing filesystems ... done.
[21976.551178] Freezing user space processes ... (elapsed 0.003 seconds) done.
[21976.554240] OOM killer disabled.
[21976.554241] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[21976.555801] Suspending console(s) (use no_console_suspend to debug)
[21976.564650] sd 1:0:0:0: [sda] Synchronizing SCSI cache
[21976.573482] e1000e: EEE TX LPI TIMER: 00000011
[21976.622307] sd 1:0:0:0: [sda] Stopping disk
[21976.803789] PM: suspend devices took 0.248 seconds
...
# trace-cmd report -F 'block_rq_insert, block_rq_complete, block_rq_requeue' | less
...
           <...>-27919 [003] 21976.567169: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:12]
          <idle>-0     [000] 21976.624751: block_rq_complete:    0,0 N () 18446744073709551615 + 0 [0]
           <...>-27919 [003] 21976.624820: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:12]
          <idle>-0     [000] 21976.806090: block_rq_complete:    0,0 N () 18446744073709551615 + 0 [0]
   kworker/u8:92-27999 [003] 21977.271943: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:92]
   kworker/u8:92-27999 [003] 21977.271948: block_rq_requeue:     0,0 N () 0 + 0 [0]
   kworker/u8:92-27999 [003] 21977.271948: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:92]
    kworker/3:1H-478   [003] 21977.283873: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.283874: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.287802: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.287803: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.291781: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.291781: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.295777: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.295778: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]

其他请求显示 dev 8,0,它按预期sda。 dev 0,0 是空设备的保留值。 为什么跟踪点会在空设备上显示个人简介? 这不是无效操作吗?

Linux 内核和trace-cmd的版本

# uname -r
4.15.14-300.fc27.x86_64
# rpm -q trace-cmd
trace-cmd-2.6.2-1.fc27.x86_64

此跟踪中的 0,0 个请求似乎与非数据请求相关联,例如 SCSI SYNCHRONIZE_CACHE 和 START_STOP。

它似乎总是这样发生:这些跟踪点被命中非数据请求(以及正常和数据请求(,但在这种情况下,块 dev 变量没有设置。 虽然它不适用于用户空间SG_IO请求;这些似乎击中了跟踪点并显示了真实的设备价值。

编辑:这是所有块跟踪点在没有关联struct bio时的工作方式:

static void blk_add_trace_getrq(void *ignore,
                struct request_queue *q,
                struct bio *bio, int rw)
{
    if (bio)
        blk_add_trace_bio(q, bio, BLK_TA_GETRQ, 0);
    else {
        struct blk_trace *bt = q->blk_trace;
        if (bt)
            __blk_add_trace(bt, 0, 0, rw, 0, BLK_TA_GETRQ, 0, 0,
                    NULL, NULL);
    }
}

示例跟踪:

# trace-cmd report | less
...
           <...>-28415 [001] 21976.558455: suspend_resume:       dpm_suspend[2] begin
           <...>-27919 [003] 21976.567166: block_getrq:          0,0 R 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.567169: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.567171: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.567175: scsi_dispatch_cmd_start: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(SYNCHRONIZE_CACHE - raw=35 00 00 00 00 00 00 00 00 00)
           <...>-27965 [000] 21976.574023: scsi_eh_wakeup:       host_no=0
           <...>-28011 [003] 21976.575989: block_touch_buffer:   253,0 sector=9961576 size=4096
           <...>-28011 [003] 21976.576000: block_touch_buffer:   253,0 sector=9961576 size=4096
           <...>-28011 [003] 21976.576003: block_dirty_buffer:   253,0 sector=6260135 size=4096
           <...>-28011 [003] 21976.576006: block_touch_buffer:   253,0 sector=9961576 size=4096
   irq/49-mei_me-28010 [000] 21976.578250: block_touch_buffer:   253,0 sector=9961576 size=4096
   irq/49-mei_me-28010 [000] 21976.578256: block_touch_buffer:   253,0 sector=9961576 size=4096
   irq/49-mei_me-28010 [000] 21976.578258: block_dirty_buffer:   253,0 sector=6260135 size=4096
   irq/49-mei_me-28010 [000] 21976.578259: block_touch_buffer:   253,0 sector=9961576 size=4096
          <idle>-0     [000] 21976.624746: scsi_dispatch_cmd_done: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(SYNCHRONIZE_CACHE - raw=35 00 00 00 00 00 00 00 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
          <idle>-0     [000] 21976.624751: block_rq_complete:    0,0 N () 18446744073709551615 + 0 [0]
           <...>-27919 [003] 21976.624817: block_getrq:          0,0 R 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.624820: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.624821: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/u8:12]
           <...>-27919 [003] 21976.624824: scsi_dispatch_cmd_start: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(START_STOP - raw=1b 00 00 00 00 00)
          <idle>-0     [000] 21976.806085: scsi_dispatch_cmd_done: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(START_STOP - raw=1b 00 00 00 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
          <idle>-0     [000] 21976.806090: block_rq_complete:    0,0 N () 18446744073709551615 + 0 [0]
   kworker/u8:66-27973 [000] 21976.806190: scsi_eh_wakeup:       host_no=1
           <...>-28415 [001] 21976.806290: suspend_resume:       dpm_suspend[2] end
...
           <...>-28415 [000] 21977.261494: suspend_resume:       dpm_resume[16] begin
   kworker/u8:31-27938 [002] 21977.271875: scsi_eh_wakeup:       host_no=0
   kworker/u8:33-27940 [000] 21977.271884: scsi_eh_wakeup:       host_no=1
   kworker/u8:92-27999 [003] 21977.271928: funcgraph_entry:                   |  sd_resume() {
   kworker/u8:92-27999 [003] 21977.271941: block_getrq:          0,0 R 0 + 0 [kworker/u8:92]
   kworker/u8:92-27999 [003] 21977.271943: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:92]
   kworker/u8:92-27999 [003] 21977.271945: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/u8:92]
   kworker/u8:92-27999 [003] 21977.271948: block_rq_requeue:     0,0 N () 0 + 0 [0]
   kworker/u8:92-27999 [003] 21977.271948: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/u8:92]
    kworker/3:1H-478   [003] 21977.283872: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.283873: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.283874: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.287801: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.287802: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.287803: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.291780: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.291781: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.291781: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
...
    kworker/3:1H-478   [003] 21977.811763: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.818229: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.818231: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.818231: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
           <...>-28415 [001] 21977.819038: suspend_resume:       dpm_resume[16] end
           <...>-28415 [001] 21977.819039: suspend_resume:       dpm_complete[16] begin
           <...>-28415 [001] 21977.819228: suspend_resume:       dpm_complete[16] end
           <...>-28415 [001] 21977.819230: suspend_resume:       resume_console[3] begin
           <...>-28415 [001] 21977.819231: suspend_resume:       resume_console[3] end
           <...>-28415 [001] 21977.821284: suspend_resume:       thaw_processes[0] begin
    kworker/3:1H-478   [003] 21977.821775: block_rq_issue:       0,0 N 0 () 0 + 0 [kworker/3:1H]
    kworker/3:1H-478   [003] 21977.821778: block_rq_requeue:     0,0 N () 0 + 0 [0]
    kworker/3:1H-478   [003] 21977.821779: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
...
    kworker/3:1H-478   [003] 21979.121804: block_rq_insert:      0,0 N 0 () 0 + 0 [kworker/3:1H]
     kworker/0:3-27785 [000] 21979.121918: block_getrq:          0,0 R 0 + 0 [kworker/0:3]
     kworker/0:3-27785 [000] 21979.121928: block_rq_insert:      0,0 N 255 () 0 + 0 [kworker/0:3]
     kworker/0:3-27785 [000] 21979.121930: block_rq_issue:       0,0 N 255 () 0 + 0 [kworker/0:3]
     kworker/0:3-27785 [000] 21979.121934: block_rq_requeue:     0,0 N () 0 + 0 [0]
     kworker/0:3-27785 [000] 21979.121935: block_rq_insert:      0,0 N 255 () 0 + 0 [kworker/0:3]
       scsi_eh_1-107   [000] 21979.122665: block_rq_issue:       0,0 N 255 () 0 + 0 [scsi_eh_1]
       scsi_eh_1-107   [000] 21979.122669: scsi_dispatch_cmd_start: host_no=1 channel=0 id=0 lun=0 data_sgl=1 prot_sgl=0 prot_op=0x0 cmnd=(INQUIRY - raw=12 01 00 00 ff 00)
       scsi_eh_1-107   [000] 21979.122675: scsi_dispatch_cmd_done: host_no=1 channel=0 id=0 lun=0 data_sgl=1 prot_sgl=0 prot_op=0x0 cmnd=(INQUIRY - raw=12 01 00 00 ff 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
       scsi_eh_1-107   [000] 21979.122679: block_rq_issue:       0,0 N 0 () 0 + 0 [scsi_eh_1]
       scsi_eh_1-107   [000] 21979.122681: scsi_dispatch_cmd_start: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(START_STOP - raw=1b 00 00 00 01 00)
...
...
           <...>-7     [000] 21979.122875: block_rq_complete:    0,0 N () 18446744073709551615 + 1 [0]
          hdparm-28438 [002] 21979.123335: funcgraph_entry:                   |  sd_ioctl() {
          hdparm-28438 [002] 21979.123342: funcgraph_entry:                   |    scsi_cmd_blk_ioctl() {
          <idle>-0     [000] 21979.151036: scsi_dispatch_cmd_done: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(START_STOP - raw=1b 00 00 00 01 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
          <idle>-0     [000] 21979.151040: block_rq_complete:    0,0 N () 18446744073709551615 + 0 [0]
   kworker/u8:92-27999 [003] 21979.151083: funcgraph_exit:       $ 1879152 us |  }
          hdparm-28438 [002] 21979.151135: block_getrq:          0,0 R 0 + 0 [hdparm]
          hdparm-28438 [002] 21979.151139: block_rq_insert:      8,0 N 0 () 0 + 0 [hdparm]
          hdparm-28438 [002] 21979.151141: block_rq_issue:       8,0 N 0 () 0 + 0 [hdparm]
          hdparm-28438 [002] 21979.151145: scsi_dispatch_cmd_start: host_no=1 channel=0 id=0 lun=0 data_sgl=0 prot_sgl=0 prot_op=0x0 cmnd=(ATA_16 - raw=85 06 20 00 05 00 fe 00 00 00 00 00 00 40 ef 00)
          hdparm-28438 [003] 21979.151250: funcgraph_exit:       # 27907.436 us |    }
          hdparm-28438 [003] 21979.151251: funcgraph_exit:       # 27914.313 us |  }
# dmesg
...
[21977.269427] sd 1:0:0:0: [sda] Starting disk
...
[21977.816724] PM: resume devices took 0.558 seconds
[21977.818781] OOM killer enabled.
[21977.818782] Restarting tasks ...
...
[21979.032279] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[21979.120143] ata2.00: configured for UDMA/133

相关内容

最新更新