scsi: ftrace based scsi tracer
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest2 patches 5 repliesIn review
- v32 patches 0 repliesSuperseded
- v22 patches 2 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 2 patches | 8 replies | Superseded |
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/2 | scsi: add __print_hex() to ftraceinclude/ include/ kernel/ | +21 | 5 replies | |
| 2/2 | scsi: add scsi trace core functions and put trace pointsdrivers/ drivers/ drivers/ +3 more | +525 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.
Cover letter [PATCH 0/2 v4] scsi: ftrace based scsi tracer
Hi,
This is v4 patch series of SCSI trace. Only a cosmetic change from v3.
Because it's been a while since the first posting, I'll put brief descriptions of the patchset.
Basically, this is a ftrace based SCSI tracer. It prints the following information for scsi-3 commands.
o scsi bus number ("host")
o scsi channel number ("channel")
o scsi id ("id")
o LUN ("lun")
o command info
- op name (ex. "WRITE_10")
- LBA ("lba") (for certain commands only)
- transfer length ("txlen") (for certain commands only)
- CDB (ex. "raw=28 00 03 60 a2 cb 00 00 08 00")
o result of the command
(ex. "result=(driver=DRIVER_OK host=DID_OK
message=COMMAND_COMPLETE status=SAM_STAT_GOOD")
Those information are printed either at a time:
o when a command is to be dispatched,
o when a command dispatched returns in error,
o when a command is done,
o when an error handler is to waken up, or
o when timeout of a command is deteced.
To use it quickly, try these steps:
1) Build a kernel with the patchset applied (ftrace related kernel configs need to be enabled.)
2) Boot the kernel
3) Mount debugfs
ex. mount -t debugfs none /sys/kernel/debug/
4) Indicate events to trace
ex. echo "scsi:*" > /sys/kernel/debug/tracing/set_event
5) Make some I/Os on your scsi devices
ex. ls
6) Retrieve trace log
ex. cat /sys/kernel/debug/tracing/trace
Here is an outputs example:
# tracer: nop
#
# TASK-PID CPU# TIMESTAMP FUNCTION
# | | | | |
flush-8:0-3746 [001] 1374.517152:scsi_dispatch_cmd_start: host_no=0 channel=0 id=0 lun=0 cmnd=(WRITE_10 lba=32267539 txlen=8 raw=2a 00 01 ec 5d 13 00 00 08 00)
<idle>-0 [000] 1374.524964:
scsi_dispatch_cmd_done: host_no=0 channel=0 id=0 lun=0 cmnd=(WRITE_10 lba=32267539 txlen=8 raw=2a 00 01 ec 5d 13 00 00 08 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)
This patchset applies to 2.6.34-rc3.
Thanks,
Kei