Re: [PATCH] debug: make debug=io readable with multiple threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/20/17 6:12 PM, Robert Elliott wrote:
> From: Robert Elliott <elliott@xxxxxxx>
> 
> When multiple threads are active, debug=io prints are unreadable as the output
> is interleaved. Multiple log_info_buf() calls are used to construct each line,
> but there is no mutual exclusion covering multiple calls.
> 
> Change the dprint call tree to construct the entire line before passing it to
> log_info_buf(), rather than make several calls.
> 
> Other nits:
> * print the thread ID rather than the process ID
> * change offset and length from decimal to hex
> * separate offset, length, ddir, and file with , rather than / since the
>   filename on the same line likely has / of its own
> * change "fill_io_u" to "fill" to match the others
> * change "io complete" to "complete" to match the others
> * change "->prep()=%d" to "prep: io_u %p: ret=%d" to resemble the others
> * change offset/buflen in an error print to better resemble the normal prints
> * add "file=" prefix for the filename
> * check the calloc() return values inside the valist_to_buf functions
> 
> Old:
> fill_io_u: io_u 0x7feeac010b80: off=720896/len=65536/ddir=1
> 
> io       50692io       50692//dev/dax0.0io       50692fill_io_u: io_u 0x7fee98010b80: off=196608/len=65536/ddir=1io       50692io       50692
> io       50692->prep(0x7fef10010b80)=0
> //dev/dax0.0//dev/dax1.0io       50692io       50692io       50692io       50692->prep(0x7feeec010b80)=0
> io       50692prep: io_u 0x7feec4010b80: off=1966080/len=65536/ddir=1io       50692io complete: io_u 0x7feedc010b80: off=393216/len=65536/ddir=1io
> 50692io       50692prep: io_u 0x7feef4010b80: off=720896/len=65536/ddir=1io       50692io       50692
> io       50692io       50692prep: io_u 0x7feef0010b80: off=851968/len=65536/ddir=1//dev/dax0.0io       50692//dev/dax0.0
> 
> //dev/dax0.0
> io       50692io       50692//dev/dax0.0//dev/dax0.0io       50692
> 
> New:
> io       71400 queue: io_u 0x7fd0f0010b80: off=0x2f0000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71395 fill: io_u 0x7fd0fc010b80: off=0x80000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71395 prep: io_u 0x7fd0fc010b80: off=0x80000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71395 prep: io_u 0x7fd0fc010b80: ret=0
> io       71395 queue: io_u 0x7fd0fc010b80: off=0x80000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71430 complete: io_u 0x7fd05c010b80: off=0x180000,len=0x10000,ddir=1,file=/dev/dax1.0
> io       71400 complete: io_u 0x7fd0f0010b80: off=0x2f0000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71430 fill: io_u 0x7fd05c010b80: off=0x190000,len=0x10000,ddir=1,file=/dev/dax1.0
> io       71400 fill: io_u 0x7fd0f0010b80: off=0x300000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71400 prep: io_u 0x7fd0f0010b80: off=0x300000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71400 prep: io_u 0x7fd0f0010b80: ret=0
> io       71400 queue: io_u 0x7fd0f0010b80: off=0x300000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71430 prep: io_u 0x7fd05c010b80: off=0x190000,len=0x10000,ddir=1,file=/dev/dax1.0
> io       71395 complete: io_u 0x7fd0fc010b80: off=0x80000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71430 prep: io_u 0x7fd05c010b80: ret=0
> io       71430 queue: io_u 0x7fd05c010b80: off=0x190000,len=0x10000,ddir=1,file=/dev/dax1.0
> io       71421 complete: io_u 0x7fd090010b80: off=0x320000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71419 complete: io_u 0x7fd098010b80: off=0x320000,len=0x10000,ddir=1,file=/dev/dax0.0
> io       71404 complete: io_u 0x7fd0d0010b80: off=0x0,len=0x10000,ddir=1,file=/dev/dax0.0

Looks good, thanks for doing this! Applied.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux