Re: [PATCH] scsi: core: Add BLIST_NO_ASK_VPD_SIZE for some VDASD

From: Hannes Reinecke
Date: Tue Oct 04 2022 - 02:01:06 EST


On 10/2/22 23:16, Bart Van Assche wrote:
On 9/28/22 11:13, Lee Duncan wrote:
From: Lee Duncan <lduncan@xxxxxxxx>

Some storage, such as AIX VDASD (virtual storage) and IBM 2076
(front end) do not like the recent commit:

commit c92a6b5d6335 ("scsi: core: Query VPD size before getting full page")

That commit changed getting SCSI VPD pages so that we now read
just enough of the page to get the actual page size, then read
the whole page in a second read. The problem is that the above
mentioned hardware returns zero for the page size, because of
a firmware error. In such cases, until the firmware is fixed,
this new black flag says to revert to the original method of
reading the VPD pages, i.e. try to read as a whole buffer's
worth on the first try.

Fixes: c92a6b5d6335 ("scsi: core: Query VPD size before getting full page")

Hi Lee,

If we introduce a blacklist flag to skip querying the VPD page size then we will have to find all SCSI devices that do not handle querying the VPD page size correctly. Has it been considered instead of introducing a blacklist flag to not use the reported VPD page size if the device reports that the VPD page size is zero? I am not aware of any VPD pages for which zero is a valid size.

True.
But pre-SPC drives will ignore the VPD bit in the inquiry size. And these devices do not set an additional length in the inquiry data we will interpret the VPD page response as a zero-length VPD page.
Not good.

And really, we've seen only _one_ instance of this particular behaviour.
And even that could arguably been fixed with a firmware update on the target side. But to not introduce regressions we've opted for this flag.

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman