linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Miquel van Smoorenburg <miquels@cistron.nl>
Cc: Jeff Garzik <jeff@garzik.org>,
	IDE/ATA development list <linux-ide@vger.kernel.org>,
	Daniel Drake <dsd@gentoo.org>,
	Francesco Pretto <ceztko@gmail.com>,
	Chuck Ebbert <cebbert@redhat.com>,
	hmh@hmh.eng.br, pkg-sysvinit-devel@lists.alioth.debian.org,
	Henrique de Moraes Holschuh <hmh@debian.org>
Subject: Re: [Pkg-sysvinit-devel] [PATCH] libata: remove	libata.spindown_compat
Date: Sat, 19 May 2007 13:14:03 +0200	[thread overview]
Message-ID: <464EDBFB.3050307@gmail.com> (raw)
In-Reply-To: <1179572779.23670.13.camel@localhost.localdomain>

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

  reply	other threads:[~2007-05-19 11:14 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17 14:43 [PATCH] libata: remove libata.spindown_compat Tejun Heo
2007-05-17 14:54 ` Tejun Heo
2007-05-18  0:58 ` Jeff Garzik
2007-05-19 11:06 ` Miquel van Smoorenburg
2007-05-19 11:14   ` Tejun Heo [this message]
2007-05-19 13:48     ` [Pkg-sysvinit-devel] " Henrique de Moraes Holschuh
2007-05-19 16:47       ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=464EDBFB.3050307@gmail.com \
    --to=htejun@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=ceztko@gmail.com \
    --cc=dsd@gentoo.org \
    --cc=hmh@debian.org \
    --cc=hmh@hmh.eng.br \
    --cc=jeff@garzik.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=miquels@cistron.nl \
    --cc=pkg-sysvinit-devel@lists.alioth.debian.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).