Message ID | 20231010092051.608007-1-haowenchao2@huawei.com |
---|---|
Headers | show |
Series | scsi:scsi_debug: Add error injection for single device | expand |
On 2023/10/10 17:20, 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 support inject timeout errors, queuecommand > errors, and hostbyte, driverbyte, statusbyte, and sense data for > specific SCSI Command. Two new error injection is defined to make > abort command or reset LUN failed. > > Besides error injection for single device, this patchset add a > new interface to make reset target failed for each scsi_target. > > The first two patch add a debugfs interface to add and inquiry single > device's error injection info; the third patch defined how to remove > an injection which has been added. The following 5 patches use the > injection info and generate the related error type. The last two just > add a new interface to make reset target failed and control > scsi_device's allow_restart flag. > Friendly ping... > V6: > - Check return value of debugfs_create_xxx() and print error log > if debugfs_create_xxx() return error > - Fix typo in description of patch7 and patch8 > - Update the description of patch10 > > V5: > - Using rcu list to sync between error inject add, remove and check > - Add module parameter "allow_restart" to control scsi_device's > allow_restart flag > > V4: > - Fix BUG_ON triggered by schedule in atomic context when rmmod scsi_debug > Closes: https://lore.kernel.org/oe-lkp/202308031027.5941ce5f-oliver.sang@intel.com > > V3: > - Add two more error types to fail abort command and lun reset > - Fix memleak when rmmod scsi_debug without clearing errors injected > - Fix memkeak because did not implement release in sdebug_error_fops > - Fix possible NULL point access in scsi_debug_slave_destroy > - Move specific error type's description to each single patch which > implement this error type > - Add interface to make target reset fail > > V2: > - Using debugfs rather than sysfs attribute interface to manage error > > Wenchao Hao (10): > scsi: scsi_debug: create scsi_debug directory in the debugfs filesystem > scsi: scsi_debug: Add interface to manage single device's error inject > 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 > scsi: scsi_debug: Add new error injection abort failed > scsi: scsi_debug: Add new error injection reset lun failed > scsi: scsi_debug: Add debugfs interface to fail target reset > scsi: scsi_debug: Add param to control sdev's allow_restart > > drivers/scsi/scsi_debug.c | 575 +++++++++++++++++++++++++++++++++++++- > 1 file changed, 570 insertions(+), 5 deletions(-) >
Wenchao, > The original error injection mechanism was based on scsi_host which > could not inject fault for a single SCSI device. Applied to 6.7/scsi-staging, thanks!