Messages in this thread |  | | Date | Thu, 23 Oct 2014 10:03:31 +0100 | Subject | Re: [PATCH 0/3] scsi: Add Hyper-V logical block provisioning quirks | From | Sitsofe Wheeler <> |
| |
On 23 October 2014 02:50, Martin K. Petersen <martin.petersen@oracle.com> wrote: >>>>>> "Sitsofe" == Sitsofe Wheeler <sitsofe@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/
|  |