All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Duncan <lduncan@suse.com>
To: Bart Van Assche <bvanassche@acm.org>,
	Lee Duncan <leeman.duncan@gmail.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Martin Wilck <mwilck@suse.com>, Hannes Reinecke <hare@suse.de>
Subject: Re: [PATCH] scsi: core: Add BLIST_NO_ASK_VPD_SIZE for some VDASD
Date: Sun, 2 Oct 2022 15:21:34 -0700	[thread overview]
Message-ID: <bdb69723-269d-3c1f-2501-7db0e6246890@suse.com> (raw)
In-Reply-To: <11a582f0-723c-95e1-0e44-0a19e1a8a9a8@acm.org>

On 10/2/22 14:16, Bart Van Assche wrote:
> On 9/28/22 11:13, Lee Duncan wrote:
>> From: Lee Duncan <lduncan@suse.com>
>>
>> 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.
> 
> Thanks,
> 
> Bart.

Hi Bart:

The problem with the broken firmware in my case is that it reports a 
size of zero, but it actually has the data! So the "size" returned for 
this one VPD page is just wrong. And I haven't researched it yet, but I 
assume that this hardware returned the failing page in question as a 
page it supported. In other words, you can't count on this hardware to 
report correctly. [I will check and update this email thread if this is 
wrong.]

This broken firmware was never an issue before commit c92a6b5d6335, 
since we used to just try to read 255 bytes, expecting that we would get 
back 255 or less. This worked almost all the time -- except for buggy 
hardware!

I suspect there isn't many pieces of hardware that return zero length 
incorrectly, and that if such hardware shoes up then they'll be able to 
use this flag to work around it.

So, for my hardware use case, if I add my commit, the VPD page shows up 
in sysfs, and before my commit no VPD page showed up. [Also, reverting 
commit c92a6b5d6335 made the VPD page show up, as a side note.]

Lastly, as for pages that might validly return size zero, Hannes seems 
to think some of the older hardware (under the older standards) returned 
zero as a valid page size for some VPD pages. For this reason I decided 
to not use a simpler approach of just trying to read the VPD page with a 
size of 255 if the "read length" returned zero (as in this case), i.e. 
since Hannes thinks some hardware might legitimately do this.

-- 
Lee

  reply	other threads:[~2022-10-02 22:22 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28 18:13 [PATCH] scsi: core: Add BLIST_NO_ASK_VPD_SIZE for some VDASD Lee Duncan
2022-09-29 10:42 ` Martin Wilck
2022-10-02 21:16 ` Bart Van Assche
2022-10-02 22:21   ` Lee Duncan [this message]
2022-10-04  6:00   ` Hannes Reinecke
2022-11-08  2:50     ` Martin K. Petersen
2022-11-08  6:57       ` Hannes Reinecke
2022-11-21 14:53       ` Martin Wilck
2022-10-03 16:32 ` Bart Van Assche
2023-02-20 11:13 ` Srikar Dronamraju
2023-02-27  7:02 ` Hannes Reinecke
2023-03-03  9:02 ` Linux regression tracking (Thorsten Leemhuis)
2023-03-03 18:54   ` Lee Duncan
2023-03-06 22:14     ` Martin K. Petersen
2023-03-07  2:54     ` Martin K. Petersen
2023-03-07 10:32       ` Srikar Dronamraju
2023-03-07 16:33       ` Lee Duncan
2023-03-07 23:40         ` Martin K. Petersen
2023-03-08 18:41           ` Lee Duncan
2023-03-10  3:17             ` 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=bdb69723-269d-3c1f-2501-7db0e6246890@suse.com \
    --to=lduncan@suse.com \
    --cc=bvanassche@acm.org \
    --cc=hare@suse.de \
    --cc=jejb@linux.ibm.com \
    --cc=leeman.duncan@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mwilck@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.