On Sat, 29 Jan 2005 18:19:50 -0600, Doug Maxey <[EMAIL PROTECTED]> wrote: > > On Sun, 30 Jan 2005 01:05:03 +0100, Bartlomiej Zolnierkiewicz wrote: > >On Sat, 29 Jan 2005 17:54:47 -0600, Doug Maxey <[EMAIL PROTECTED]> wrote: > >> > >> On Fri, 28 Jan 2005 23:59:18 +0100, Bartlomiej Zolnierkiewicz wrote: > >> >On Fri, 28 Jan 2005 23:56:41 +0100, Bartlomiej Zolnierkiewicz > >> ><[EMAIL PROTECTED]> wrote: > >> >> On Fri, 28 Jan 2005 16:54:49 -0600, Doug Maxey <[EMAIL PROTECTED]> > >> >> wrote: > >> >> > > >> >> > On Fri, 28 Jan 2005 23:32:53 +0100, Bartlomiej Zolnierkiewicz wrote: > >> >> > >> The datacenters/server folks that would be using these drives would > >> >> > >> expect them to remain as set. I have to check, but unless > >> >> > >> something > >> >> > >> has changed very recently in the kernel, setting with hdparm does > >> >> > >> not > >> >> > >> "stick" in the sense that the command succeeds to the disk, but no > >> >> > >> change > >> >> > >> is made to the barrier. > >> >> > > > >> >> > >It is not a problem for IDE driver (flushes become no-ops) > >> >> > >and this way you can later enable wcache and still use barries. > >> >> > > >> >> > Well that certainly simplfies things. > >> >> > > >> >> > How about this? > >> >> > >> >> No go until 'drive->wcache' bug is fixed. > >> > > >> >And until user is informed about status of wcache (printk). > >> > > >> > >> [PATCH] use IDE drive cache enabled setting by default. > >> > >> Enable the default setting of the driver use of write cache to be > >> defined by the drive itself. > >> > >> Signed-off-by: Doug Maxey <[EMAIL PROTECTED]> > >> > >> ===== drivers/ide/ide-disk.c 1.115 vs 1.116 ===== > >> --- 1.115/drivers/ide/ide-disk.c 2005-01-04 11:39:25 -06:00 > >> +++ 1.116/drivers/ide/ide-disk.c 2005-01-29 15:13:24 -06:00 > >> @@ -784,6 +784,7 @@ static int write_cache(ide_drive_t *driv > >> if (err) > >> return err; > >> > >> + printk(KERN_DEBUG "%s: %sabling write cache\n", drive->name, arg ? > >> "en" : "dis"); > >> drive->wcache = arg; > >> return 0; > >> } > >> @@ -1080,10 +1081,10 @@ static void idedisk_setup (ide_drive_t * > >> drive->no_io_32bit = id->dword_io ? 1 : 0; > >> > >> /* write cache enabled? */ > >> - if ((id->csfo & 1) || (id->cfs_enable_1 & (1 << 5))) > >> + if ((id->csfo & 1) && (id->cfs_enable_1 & (1 << 5))) > >> drive->wcache = 1; > > > >This bogus... I was thinking about bug related to hdparm... > > Sorry, my crystal ball is foggy today. Do you have a specific bug number or > message-id?
>From private mail to you: On Wed, 13 Oct 2004 21:06:32 +0200, Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote: > the write cache handling is a bit more complicated, please look at > write_cache(): > > if (!ide_id_has_flush_cache(drive->id)) > return 1; > > this means that the write cache will stay enabled for devices not supporting > (or advertising) flush cache feature. Anyway this is a minor issue, > real problem is that hdparm doesn't use HDIO_SET_WCACHE ioctl but > HDIO_DRIVE_CMD to [en,dis]able write cache. Suppose the following scenario: > > - disk supports write cache and cache flush > - disk comes with write cache disabled by default > - your patch disables write cache > - user enables write cache with hdparm > - driver is not aware that write cache has been enabled > (BAD) > > > >> - write_cache(drive, 1); > >> + write_cache(drive, drive->wcache); > > > >You still didn't answer my question what is the practical reason for this... > > Thought we had already cleared this up. See above. Nope, please see "[RFC/PATCH 0/7] enable honoring write cache setting of IDE drive" thread. - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html