From: Wenchao Hao <haowenchao2@huawei.com>
To: "Martin K . Petersen" <martin.petersen@oracle.com>,
Douglas Gilbert <dgilbert@interlog.com>
Cc: "James E . J . Bottomley" <jejb@linux.ibm.com>,
<linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<louhongxiang@huawei.com>, Wenchao Hao <haowenchao2@huawei.com>
Subject: [PATCH v6 00/10] scsi:scsi_debug: Add error injection for single device
Date: Tue, 10 Oct 2023 17:20:41 +0800 [thread overview]
Message-ID: <20231010092051.608007-1-haowenchao2@huawei.com> (raw)
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.
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(-)
--
2.32.0
next reply other threads:[~2023-10-10 9:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-10 9:20 Wenchao Hao [this message]
2023-10-10 9:20 ` [PATCH v6 01/10] scsi: scsi_debug: create scsi_debug directory in the debugfs filesystem Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 02/10] scsi: scsi_debug: Add interface to manage single device's error inject Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 03/10] scsi: scsi_debug: Define grammar to remove added error injection Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 04/10] scsi: scsi_debug: timeout command if the error is injected Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 05/10] scsi: scsi_debug: Return failed value " Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 06/10] scsi: scsi_debug: set command's result and sense data " Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 07/10] scsi: scsi_debug: Add new error injection abort failed Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 08/10] scsi: scsi_debug: Add new error injection reset lun failed Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 09/10] scsi: scsi_debug: Add debugfs interface to fail target reset Wenchao Hao
2023-10-10 9:20 ` [PATCH v6 10/10] scsi: scsi_debug: Add param to control sdev's allow_restart Wenchao Hao
2023-10-16 2:09 ` [PATCH v6 00/10] scsi:scsi_debug: Add error injection for single device Wenchao Hao
2023-10-17 0:53 ` Martin K. Petersen
2023-10-25 2:19 ` Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231010092051.608007-1-haowenchao2@huawei.com \
--to=haowenchao2@huawei.com \
--cc=dgilbert@interlog.com \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=louhongxiang@huawei.com \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®