On 23/03/2023 11:55, Wenchao Hao wrote:
The original error injection mechanism was based on scsi_host which could not inject fault for a single SCSI device. This patchset provides the ability to inject errors for a single SCSI device. Now we supports inject timeout errors, queuecommand errors, and hostbyte, driverbyte, statusbyte, and sense data for specific SCSI Command.
There is already a basic mechanism to generate errors - like timeouts - on "nth" command. Can you say why you want this new interface? What special scenarios are you trying to test/validate (which could not be achieved based on the current mechanism)?
With this series we would have 2x methods to inject errors, which is less than ideal, and they seem to possibly conflict as well, e.g. I set timeout for nth command via current interface and then use the new interface to set timeout for some other cadence. What behavior to expect ...?
I'm not saying that I am a huge fan of the current inject mechanism, but at the very least you need to provide more justification for this series.
The first patch add an sysfs interface to add and inquiry single device's error injection info; the second patch defined how to remove an injection which has been added. The following 3 patches use the injection info and generate the related error type. Wenchao Hao (5): scsi:scsi_debug: Add sysfs interface to manage scsi devices' error injection scsi:scsi_debug: Define grammar to remove added error injection scsi:scsi_debug: timeout command if the error is injected scsi:scsi_debug: Return failed value if the error is injected scsi:scsi_debug: set command's result and sense data if the error is injected drivers/scsi/scsi_debug.c | 296 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+)