In RHEL6(linux-2.6.32-71.el6), I added some codes to check the
result of scsi commands: WRITE_6, WRITE_10, WRITE_12, WRITE_16 when I
executed "dd if=/dev/zero of=/dev/xda bs=64k count=10000". I found a
lot of write error messages in scsi_softirq_done, the
disposition(variable) was ADD_TO_MLQUEUE and the speed was 78MB/s.
Then I changed MPT_SCSI_CMD_PER_DEV_HIGH from 64 to 32 in
mptscsih_change_queue_depth, the speed was 140MB/s and none error
messages.
* /dev/xda is a scsi disk.
* MPT_SCSI_CMD_PER_DEV_HIGH will be assigned to blk_queue_tag-
>max_depth.
My questions:
Is the TCQ depth limited by hard disk, how can I get the limited?
Why the speed was drop to 78MB/s when MPT_SCSI_CMD_PER_DEV_HIGH is
64?
Could I change MPT_SCSI_CMD_PER_DEV_HIGH to 32 or 16 or 8, Will it
cause any problem?
Thank.
Alex Liu