$ cat /proc/scsi/sg/debug dev_max(currently)=7 max_active_device=1 (origin 1) scsi_dma_free_sectors=416 sg_pool_secs_aval=320 def_reserved_size=32768 >>> device=sg0 scsi0 chan=0 id=0 lun=0 em=0 sg_tablesize=255 excl=0 FD(1): timeout=60000ms bufflen=65536 (res)sgat=2 low_dma=0 cmd_q=1 f_packid=1 k_orphan=0 closed=0 fin: id=3949312 blen=65536 dur=10ms sgat=2 op=0x28 act: id=3949440 blen=65536 t_o/elap=60000/10ms sgat=2 op=0x28 rb>> act: id=3949568 blen=65536 t_o/elap=60000/10ms sgat=2 op=0x28 act: id=3949696 blen=65536 t_o/elap=60000/0ms sgat=2 op=0x28 |
每个缩进 5 个空格的行表示一个 SCSI 命令。命令的状态可以是
如果 sg 有大量活动,则 “debug” 输出可能会跨越多行,并且在某些情况下看起来像是损坏的。发生这种情况是因为 procfs 请求固定缓冲区大小的信息,并且如果有更多数据要输出,则稍后返回以获取剩余部分。这种策略的问题是 sg 的内部状态可能已经改变。sg 驱动程序没有使用双缓冲,而是从相同的偏移量继续。虽然 procfs 非常有用,但 ioctl()(例如 SG_GET_REQUEST_TABLE)仍然有其地位。