Re: [PATCH v4] sd: Check for unaligned partial completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bart,

On 2/16/17 10:10, Bart Van Assche wrote:
> On Thu, 2017-02-16 at 09:54 +0900, Damien Le Moal wrote:
>> On 2/16/17 01:42, Bart Van Assche wrote:
>>> An additional concern: what if the size of the Data-Out buffer is not a
>>> multiple of the logical block size? Shouldn't we round down (good_bytes -
>>> resid) instead of rounding up resid?
>>
>> The only REQ_TYPE_FS request that may not operate on LBA size aligned
>> payloads is REQ_OP_ZONE_REPORT which is handles in a different case of
>> the switch statement. So I think it is safe.
> 
> Hello Damien,
> 
> Are you aware that it is the software that submits a request that controls
> the buffer length and not the device that processes a request? Submitting
> Data-Out buffers with odd sizes is one of the tests in the libiscsi test
> suite. See e.g. the source file test-tool/test_write10_residuals.c in that
> test suite. The request submitted by the libiscsi test suite reach the
> kernel of the target system either through SG IO or through the iSCSI
> target driver. When using iSCSI, both the LIO and SCST SCSI target
> frameworks translate these requests into REQ_TYPE_FS requests. I think we
> should aim not to affect the outcome of libiscsi tests when the underlying
> device is a SCSI disk.

Thanks for the pointers. I checked libiscsi tests. And from what is done
there, it seems to me that it is basically impossible to distinguished
between a buggy hardware response and an in-purpose (or buggy) not
aligned data-out buffer size.
E.g. the test in test_write10_residuals.c which issues a 1 block write
with a buf size of 10000 and checks that residual is 10000 - block size.
For that case, with both this patch and the original mpt3sas patch, the
rounding up of resid to the block size will break the test.

Yet, it is very surprising that LIO and SCST_SCSI issue the "buggy"
request as is without checking and eventually correcting things first.
So unless LIO and SCST_SCSI are fixed to do that on the request they
send to the device, both patches should be dropped.
Users with buggy mpt3 HBAs will need to update the HBA FW...

So the conclusion may be that we need to drop everything ? The mpt3sas
patch breaks ZBC now, so that must be removed too.

Thoughts ?

Best regards.

-- 
Damien Le Moal, Ph.D.
Sr. Manager, System Software Research Group,
Western Digital Corporation
Damien.LeMoal@xxxxxxx
(+81) 0466-98-3593 (ext. 513593)
1 kirihara-cho, Fujisawa,
Kanagawa, 252-0888 Japan
www.wdc.com, www.hgst.com



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux