On Tue, Dec 13, 2011 at 10:24 AM, Amit Sahrawat <amit.sahrawat83@xxxxxxxxx> wrote: > > Hi James, > > > > We verified the changes by actually putting the setup through a series of test cases. There were test cases where-in we were able to reduce the filesystem corruption by 100%. > > Yes, In normal operation SYNC_CACHE gets called up when we do a safe removal of the device. But, Setting WCE also takes cares of sending the SYNC_CACHE command in between the operations also. > > > > What we are making sure is, that by providing this interface we can have WCE enabled for some HDD –that will mark QUEUE ORDERING to QUEUE_ORDERED_DRAIN_FLUSH(Preflush-Postflush)(i.e., flushing will occur for all the Mass Storage devices - which in turn will keep on calling SYNC_CACHE for these devices. > > > > We checked this on USB HDD’s, USB SSD, and USB Flash from a number of vendors – all seemed to work pretty well with these changes. > > > > Please share your opinion. > > > > Thanks & Regards, > > Amit Sahrawat > > > > > On Tue, Dec 13, 2011 at 5:50 AM, Namjae Jeon <linkinjeon@xxxxxxxxx> wrote: >> >> 2011/12/12 James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>: >> > On Mon, 2011-12-12 at 16:48 +0530, Amit Sahrawat wrote: >> >> 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). >> >> This results in a number of Filesystem corruptions, when the device >> >> is unplugged abruptly. >> > >> > Um, how would knowing the caching type correctly help? If you surprise >> > unplug the device, we can't send a flush to it anyway ... >> Hi. James. >> We can get device specification buffer to use ata_16 cmd.So we are >> able to distinguish caching type by using 85byte of buffer. >> And filesystem is using write barrier function to protect important >> data like journaling data. >> If filesystem is able to use write barrier by correctly setting WCE, >> ordering can be guaranteed to flush data(preflush/postflush) to >> internal write cache in hdd before power off. so filesystem can get >> consistency and reliability by sudden plug and power off. >> > >> >> So, in order to identify the devices correctly - give it >> >> a last try using ATA_16 after failure from normal routine. >> >> Introduce a mechanism to store write-cache type using /sys/class/ >> >> interface, so that the normal code continues to function without errors. >> >> >> >> Signed-off-by: Amit Sahrawat <amit.sahrawat83@xxxxxxxxx> >> >> Signed-off-by: Nam-Jae Jeon <namjae.jeon@xxxxxxxxxxx> >> > >> > This whole patch looks like a layering violation. Why not just update >> > the SAT layer to translate the MODE SENSE correctly? >> Would plz you explain more ? I didn't clearly understand your point yet. >> > >> > James >> > >> > >> > -- >> > 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/ > > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html