2018-03-26 14:09:05

by Ross Lagerwall

[permalink] [raw]
Subject: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist

The Windows Server 2016 iSCSI target doesn't work with the Linux kernel
initiator since the kernel started sending larger requests by default,
nor does it implement the block limits VPD page. Apply the sector limit
workaround for these targets.

Signed-off-by: Ross Lagerwall <[email protected]>
---
drivers/scsi/scsi_devinfo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
index f3b1172..5cb748a 100644
--- a/drivers/scsi/scsi_devinfo.c
+++ b/drivers/scsi/scsi_devinfo.c
@@ -213,7 +213,7 @@ static struct {
{"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN},
{"MegaRAID", "LD", NULL, BLIST_FORCELUN},
{"MICROP", "4110", NULL, BLIST_NOTQ},
- {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC},
+ {"MSFT", "Virtual HD", NULL, BLIST_MAX_1024 | BLIST_NO_RSOC},
{"MYLEX", "DACARMRB", "*", BLIST_REPORTLUN2},
{"nCipher", "Fastness Crypto", NULL, BLIST_FORCELUN},
{"NAKAMICH", "MJ-4.8S", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
--
2.9.5



2018-03-28 22:34:45

by Long Li

[permalink] [raw]
Subject: RE: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist

> Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector
> blacklist
>
>
> Long, KY: Please confirm.
>
> > The Windows Server 2016 iSCSI target doesn't work with the Linux
> > kernel initiator since the kernel started sending larger requests by
> > default, nor does it implement the block limits VPD page. Apply the
> > sector limit workaround for these targets.
> >
> > Signed-off-by: Ross Lagerwall <[email protected]>
> > ---
> > drivers/scsi/scsi_devinfo.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
> > index f3b1172..5cb748a 100644
> > --- a/drivers/scsi/scsi_devinfo.c
> > +++ b/drivers/scsi/scsi_devinfo.c
> > @@ -213,7 +213,7 @@ static struct {
> > {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN},
> > {"MegaRAID", "LD", NULL, BLIST_FORCELUN},
> > {"MICROP", "4110", NULL, BLIST_NOTQ},
> > - {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC},
> > + {"MSFT", "Virtual HD", NULL, BLIST_MAX_1024 | BLIST_NO_RSOC},

Ross,

What about storage_channel_properties.max_transfer_bytes returned from VSTOR_OPERATION_QUERY_PROPERTIES (in storvsc_channel_init())

Does it return correctly the maximum transfer size for iSCSI?

Long

> > {"MYLEX", "DACARMRB", "*", BLIST_REPORTLUN2},
> > {"nCipher", "Fastness Crypto", NULL, BLIST_FORCELUN},
> > {"NAKAMICH", "MJ-4.8S", NULL, BLIST_FORCELUN |
> BLIST_SINGLELUN},
>
> --
> Martin K. Petersen Oracle Linux Engineering

2018-03-28 22:49:57

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist


Long, KY: Please confirm.

> The Windows Server 2016 iSCSI target doesn't work with the Linux kernel
> initiator since the kernel started sending larger requests by default,
> nor does it implement the block limits VPD page. Apply the sector limit
> workaround for these targets.
>
> Signed-off-by: Ross Lagerwall <[email protected]>
> ---
> drivers/scsi/scsi_devinfo.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
> index f3b1172..5cb748a 100644
> --- a/drivers/scsi/scsi_devinfo.c
> +++ b/drivers/scsi/scsi_devinfo.c
> @@ -213,7 +213,7 @@ static struct {
> {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN},
> {"MegaRAID", "LD", NULL, BLIST_FORCELUN},
> {"MICROP", "4110", NULL, BLIST_NOTQ},
> - {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC},
> + {"MSFT", "Virtual HD", NULL, BLIST_MAX_1024 | BLIST_NO_RSOC},
> {"MYLEX", "DACARMRB", "*", BLIST_REPORTLUN2},
> {"nCipher", "Fastness Crypto", NULL, BLIST_FORCELUN},
> {"NAKAMICH", "MJ-4.8S", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},

--
Martin K. Petersen Oracle Linux Engineering

2018-04-05 17:09:53

by Ross Lagerwall

[permalink] [raw]
Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist

On 03/28/2018 11:33 PM, Long Li wrote:
>> Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector
>> blacklist
>>
>>
>> Long, KY: Please confirm.
>>
>>> The Windows Server 2016 iSCSI target doesn't work with the Linux
>>> kernel initiator since the kernel started sending larger requests by
>>> default, nor does it implement the block limits VPD page. Apply the
>>> sector limit workaround for these targets.
>>>
>>> Signed-off-by: Ross Lagerwall <[email protected]>
>>> ---
>>> drivers/scsi/scsi_devinfo.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
>>> index f3b1172..5cb748a 100644
>>> --- a/drivers/scsi/scsi_devinfo.c
>>> +++ b/drivers/scsi/scsi_devinfo.c
>>> @@ -213,7 +213,7 @@ static struct {
>>> {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN},
>>> {"MegaRAID", "LD", NULL, BLIST_FORCELUN},
>>> {"MICROP", "4110", NULL, BLIST_NOTQ},
>>> - {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC},
>>> + {"MSFT", "Virtual HD", NULL, BLIST_MAX_1024 | BLIST_NO_RSOC},
>
> Ross,
>
> What about storage_channel_properties.max_transfer_bytes returned from VSTOR_OPERATION_QUERY_PROPERTIES (in storvsc_channel_init())
>
> Does it return correctly the maximum transfer size for iSCSI?
>

I presume you're referring to the Hyper-V virtual storage driver? This
has nothing to do with that module -- I don't even have it compiled in.
It's just simply the Linux kernel initiator connecting over plain
software iSCSI to a Windows Server 2016 iSCSI target.

This is easy enough to reproduce. Just set up a Windows Server 2016
target and try and use it from Linux. You get I/O errors as soon as you
try and format the disk.

Cheers,
--
Ross Lagerwall

2018-04-05 19:54:28

by KY Srinivasan

[permalink] [raw]
Subject: RE: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist

+Matt

> -----Original Message-----
> From: Ross Lagerwall <[email protected]>
> Sent: Thursday, April 5, 2018 9:58 AM
> To: Long Li <[email protected]>; Martin K. Petersen
> <[email protected]>; KY Srinivasan <[email protected]>
> Cc: James E.J. Bottomley <[email protected]>; linux-
> [email protected]; [email protected]
> Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector
> blacklist
>
> On 03/28/2018 11:33 PM, Long Li wrote:
> >> Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024
> sector
> >> blacklist
> >>
> >>
> >> Long, KY: Please confirm.
> >>
> >>> The Windows Server 2016 iSCSI target doesn't work with the Linux
> >>> kernel initiator since the kernel started sending larger requests by
> >>> default, nor does it implement the block limits VPD page. Apply the
> >>> sector limit workaround for these targets.
> >>>
> >>> Signed-off-by: Ross Lagerwall <[email protected]>
> >>> ---
> >>> drivers/scsi/scsi_devinfo.c | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
> >>> index f3b1172..5cb748a 100644
> >>> --- a/drivers/scsi/scsi_devinfo.c
> >>> +++ b/drivers/scsi/scsi_devinfo.c
> >>> @@ -213,7 +213,7 @@ static struct {
> >>> {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN},
> >>> {"MegaRAID", "LD", NULL, BLIST_FORCELUN},
> >>> {"MICROP", "4110", NULL, BLIST_NOTQ},
> >>> - {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC},
> >>> + {"MSFT", "Virtual HD", NULL, BLIST_MAX_1024 | BLIST_NO_RSOC},
> >
> > Ross,
> >
> > What about storage_channel_properties.max_transfer_bytes returned
> from VSTOR_OPERATION_QUERY_PROPERTIES (in storvsc_channel_init())
> >
> > Does it return correctly the maximum transfer size for iSCSI?
> >
>
> I presume you're referring to the Hyper-V virtual storage driver? This
> has nothing to do with that module -- I don't even have it compiled in.
> It's just simply the Linux kernel initiator connecting over plain
> software iSCSI to a Windows Server 2016 iSCSI target.
>
> This is easy enough to reproduce. Just set up a Windows Server 2016
> target and try and use it from Linux. You get I/O errors as soon as you
> try and format the disk.

Adding Matt for visibility. Ross, we are fine with blacklisting for now.

K. Y
>
> Cheers,
> --
> Ross Lagerwall

2018-04-10 02:13:10

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] scsi: devinfo: Add Microsoft iSCSI target to 1024 sector blacklist


Ross,

> The Windows Server 2016 iSCSI target doesn't work with the Linux
> kernel initiator since the kernel started sending larger requests by
> default, nor does it implement the block limits VPD page. Apply the
> sector limit workaround for these targets.

Applied to 4.17/scsi-fixes, thank you!

--
Martin K. Petersen Oracle Linux Engineering