Re: [Pkg-sysvinit-devel] [PATCH] libata: remove libata.spindown_compat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Miquel van Smoorenburg wrote:
>> In ATA, this is achieved by issuing FLUSH CACHE followed by STANDBYNOW
>> and the IDE drivers (drivers/ide/*) have always issued the sequence
>> prior to powering off. libata uses SCSI sd driver as its high level
>> disk driver and the sd driver, unfortunately, issues only the cache
>> flush command during shutdown. This is mainly because SCSI disks can be
>> accessed by multiple initiators (hosts) and spinning down disks because
>> one initiator goes down can disturb others. Because of this
>> implementation detail, libata drivers up to kernel version 2.6.21 don't
>> issue the STANDBYNOW command before powering off.
> 
> This is not quite correct.
> 
> The reason halt(8) spins down IDE disks is that, way back when (november
> 2001 I guess, from the changelog), the IDE drivers did not flush the
> cache on poweroff. The result was that on some machines, poweroff was so
> fast that the power of the drive got turned off while it still had some
> unflushed data in the write-cache, resulting in filesystem corruption.
> This problem did not exist with SCSI, apparently.
> 
> To fix this issue, halt(8) started issueing WIN_STANDBYNOW1 (0xE0) and
> WIN_STANDBYNOW2 (0x94) ioctls before halt and poweroff, as that was more
> reliable than "flush cache" and the effect was the same.

One culprit there is that, according to the spec, STANDBYNOW doesn't
necessarily imply cache flush and AFAIK issuing STANDBYNOW to libata
devices is to avoid emergency unload.  Can you comment on this Henrique?

Would changing "the IDE drivers have always" to "recent IDE drivers
issue" be enough?

Thanks.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux