On Tue, Oct 11, 2011 at 7:35 PM, James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote: > On Tue, 2011-10-11 at 13:56 +0530, 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. > > This is a non-starter, as I've said before. Apart from the layering > violation of trying to make sd ATA aware, ATA_16 is known to crash some > USB devices (the bug reports are mostly about smartctl which can be made > to use ATA_16 failing). I agree that there might devices which crash on this response. > > The correct way to implement this is to have a user visible WCE variable > that can be written to in the scsi_disk class sysfs files so the user > can alter the caching type on the fly. This is OK to add WCE variable, but again this "on the fly" is confusing. I expect this to be initialized the moment I plug-in the USB. If the user has to take this decision - then again there has to be a supporting fact so as to change the "cache type" from sysfs. Again, the point would be how to get this if the device do not respond correctly. sd_store_cache_type() - is this main code point which needs to be thoroughly checked for this? especially the scsi_mode_select()? Please correct me if I am wrong. > > James > > Thanks & Regards, Amit Sahrawat -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html