[PATCH 0/3] scsi: Add Hyper-V logical block provisioning quirks

Sitsofe Wheeler sitsofe at gmail.com
Thu Oct 23 09:03:31 UTC 2014


On 23 October 2014 02:50, Martin K. Petersen <martin.petersen at oracle.com> wrote:
>>>>>> "Sitsofe" == Sitsofe Wheeler <sitsofe at gmail.com> writes:
>
> Sitsofe> 2. On top of the above, when a disk is "small" (has less than
> Sitsofe>    2^32 sectors which is typically < 2 TBytes in size) READ
> Sitsofe>    CAPACITY(16) won't be triggered.
>
> static int sd_try_rc16_first(struct scsi_device *sdp)
> {
>         if (sdp->host->max_cmd_len < 16)
>                 return 0;
>         if (sdp->try_rc_10_first)
>                 return 0;
>         if (sdp->scsi_level > SCSI_SPC_2)
>                 return 1;
>         if (scsi_device_protection(sdp))
>                 return 1;
>         return 0;
> }

Yes but since SCSI_SPC_2 was being advertised by the Hyper-V virtual
disk (and presumably device protection isn't advertised either) this
function was returning 0. That's why the patch in
https://lkml.org/lkml/2014/10/10/49 added yet another quirk. If if
SPC_3 were correctly advertised on Hyper-V  virtual disks would
TRY_VPD_PAGES still be needed to cope correctly with passthrough
disks?

What I didn't realise was that the TRY_VPD_PAGES quirk was purely to
fix WRITE_SAME Hyper-V issues and not to address anything thin
provisioning related. Having said that, why was the TRY_VPD_PAGES
quirk back-ported 3.14 without any users -
https://lkml.org/lkml/2014/9/15/733 ?

-- 
Sitsofe | http://sucs.org/~sits/


More information about the devel mailing list