Re: [RFC PATCH 0/5] scsi:scsi_debug:Add error injection for single lun

From: Damien Le Moal
Date: Sun Nov 13 2022 - 21:55:51 EST


On 11/14/22 11:54, Douglas Gilbert wrote:
> On 2022-11-13 19:30, Damien Le Moal wrote:
>> On 11/14/22 06:48, Douglas Gilbert wrote:
>>> On 2022-11-09 10:59, 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
>>>>
>>>> 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 manager single devices' error inject
>>>> scsi:scsi_debug: Add interface to remove injection which has been added
>>>> scsi:scsi_debug: make command timeout if timeout error is injected
>>>> scsi:scsi_debug: Return failed value for specific command's queuecommand
>>>> scsi:scsi_debug: fail specific scsi command with result and sense data
>>>>
>>>> drivers/scsi/scsi_debug.c | 295 ++++++++++++++++++++++++++++++++++++++
>>>> 1 file changed, 295 insertions(+)
>>>
>>> Hi,
>>> This patchset seems to assume all scsi_debug devices will be disk (-like) SCSI
>>> devices. That leaves out other device types: tapes, enclosures, WLUNs, etc.
>>>
>>> Have you considered putting these device specific additions under:
>>> /sys/class/scsi_device/<hctl>/device/error_inject/
>>> instead of
>>> /sys/block/sdb/device/error_inject/
>>
>> But these are the same, no ?
>> At least on my Fedora box, I see:
>>
>> /sys/block/sdp/device/ being
>> /sys/devices/pseudo_0/adapter0/host19/target19:0:0/19:0:0:0
>>
>> and /sys/class/scsi_device/19:0:0:0/device being
>> /sys/devices/pseudo_0/adapter0/host19/target19:0:0/19:0:0:0
>
> Well the patch descriptions are all in terms of /sys/block/sd<letter>/
> which will not exist if scsi_debug is called like this:
> $ modprobe scsi_debug ptype=1
>
> That creates a pseudo host with an attached (virtual) tape drive. If
> the patchset works for other peripheral device types (i.e. that don't
> use the sd driver) then the description should at least mention the
> more general case (i.e. /sys/class/scsi_device/<hctl>/device ) IMO.

Got it.

>
> Doug Gilbert
>

--
Damien Le Moal
Western Digital Research