Re: [Patch] SCSI: Retrieve Cache Mode Using SG_ATA_16 if normalroutine fails

From: Amit Sahrawat
Date: Tue Oct 11 2011 - 06:55:28 EST


On Tue, Oct 11, 2011 at 4:11 PM, Hannes Reinecke <hare@xxxxxxx> wrote:
> On 10/11/2011 10:26 AM, Amit Sahrawat wrote:
>>
>> SCSI: Retrieve Cache Mode Using SG_ATA_16 if normal routine fails
>>
>> It has been observed that a number of USB HDD's do not respond correctly
>> to SCSI mode sense command(retrieve caching pages) which results in their
>> Write Cache being discarded by queue requests i.e., WCE if left set to
>> '0'(disabled). So, in order to identify the devices correctly - give it
>> a last try using SG_ATA_16 after failure from normal routine.
>>
> I'd be _VERY_ cautious when trying something like this.
>
> ATA_16 is a rather recent command, and most older drives simply can't cope
> with this. Instead they just kick the error handler and go offline
> eventually.
I tried with a number of USB HDD(around 6 with different
manufacturer's, 1 USB SSD and pen drives) - they are responding
correctly with this.
>
> Shouldn't we rather use a sensible default, ie assume WCE is enabled?
If WCE is enabled by default - that will mark QUEUE ORDERING to
QUEUE_ORDERED_DRAIN_FLUSH(Preflush-Postflush)(ie., flushing will occur
for all the Mass Storage devices - which in turn will keep on calling
SYNC_CACHE for these devices(which do not have write cache)) - ie., an
extra overhead for the devices which do not have this routine(Pen
drives being widely used among these)
Is there any identification(unique information) for "older drives" ?
Please share your opinion more.

>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke                   zSeries & Storage
> hare@xxxxxxx                          +49 911 74053 688
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
>
Regards,
Amit Sahrawat
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/