From: Martin Dalecki <dalecki@evision-ventures.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Linus Torvalds <torvalds@transmeta.com>,
Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] 2.5.6 IDE 19
Date: Mon, 11 Mar 2002 17:23:41 +0100 [thread overview]
Message-ID: <3C8CDA0D.7020703@evision-ventures.com> (raw)
In-Reply-To: <E16kRZp-0000or-00@the-village.bc.nu>
Alan Cox wrote:
>> in replacements for CF cards in digital cameras and I would rather expect
>> them to be very tolerant about the driver in front of them. And then
>>
>
> Oh dear me. Wrong again. Microdrives require proper polite wakeups. But you
> see camera vendors buy in IDE code from people who can read and follow
> standards documents.
>
>
>>the WB
>> caches of IDE devices are not caches in the sense of a MESI cache,
>>they are
>> more like buffer caches and should therefore flush them self after s
>>short
>> period of inactivity without the application of any special flush
>>command.
>>
>
> You now have an absolute vote of *NO CONFIDENCE* on my part. I'm simply
> not going to consider running your code. "It probably wont eat your disk"
> and handwaving is not how you write a block layer.
You are claiming this repeatidly. But please just send me the f*cking
strace and I will beleve you. Or point me at the corresponding docs.
I see no special purpose Win2000 microdrive drivers on IBM.
And I suppose you don't even *own* an IBM MicroDrive. And please
note as well that I didn't tell: "I will never ever include such a
thing if it's required". What I was about is that there is *no* reason
to not include Pavels stuff, even if it leaks, which I know very well,
some required functionality by now. Just to satisfy your imagination of how
broken an implementation of the ATA firmware could be isn't a reaons.
If you have a damn Micro Drive, then feel free to add the required wakeup code -
you are all welcome. But please don't implement it as cat jksadfgkjhasdjkf >
/proc/some/wried/stuff.
> How is anyone supposed to debug file system code in 2.5 when its known
> that it will trash data on some disks anyway ? I'd like to see you cite
> a paragraph where the IDE device is required to flush the data back
> promptly, or on power off. I'd like to see what you plan to do about all
> the IBM disks you plan to mistreat and give bad blocks that require a
> reformat ?
For gods sake:
1. How is Win2000 going to work then?
2. I assume (modulo mistakes) that writers of firmware
are just not stupid and implement the cache as a write behind buffer and not
as a MESI cache snooping on the drives bus. But I never claimed
that I'm relying on this assumption in any way!
3. Why are *all the other* ATA drivers in different operating systems
such easy on this matter and generally much simpler leaner and more
readable then the Linux one?!
It's not like one couldn't compare... see for example www.ata-atapi.com
Fsck let's cite the IBM appilcation notes about the Micro Drive
found here http://www.storage.ibm.com/hdd/micro/appguide.htm
The IBM microdrive supports the write cache feature. When the write cache
feature is enabled, the
microdrive posts a command completion for the write command as soon as all the
write data has
been transferred to the microdrive's cache buffer. The host system, then, can
prepare for the next
command while the microdrive performs actual disk writing off-line. The write
cache feature also
contributes to the host system's battery life by shortening the amount of time
for write operation.
Because the write command completion does not correspond with the actual
disk-write completion,
the host system is required to take special care not to lose supply power to the
microdrive so that the
data that is cached but not yet written to disk will no be lost.
To ensure that the actual disk-writing of the cached data has been completed, it
is recommended that
a host system issues a `Standby Immediate' command and waits for a command
complete from the
microdrive.
The cached data will be lost when :
1. A host system cuts off the power for the microdrive
2. A user ejects the microdrive
before the microdrive completes writing cached data to disk.
The microdrive cleans (flushes out) whole cached data upon command completion of
Standby Immediate. If
the host system enables the write cache feature, it is strongly recommended to
issue Standby Immediate
before power removed, system shutdown or ejection of the microdrive.
The write cache feature is disabled at power-on reset. It is possible for the
host system to enable this feature
by issuing Set Features (Enable Write Cache). Because the microdrive may be used
with a host system
without such care for data integrity, IBM insists that the write cache feature
should not be a power-on default.
* Consideration for a time-out value when using the write cache
The microdrive can queue several consecutive write commands. Even if the host
system receives a
command completion, the microdrive may still be performing disk writing for
queued commands, each of
which could take up to 7.5 seconds as previously mentioned if an error has
occurred and an error
recovery routine starts.
This delay eventually surfaces when processing a first non-queued command during
write cache.
For example, suppose the microdrive queues 2 write commands and each command
takes 7.5 seconds
for some extreme reason. Then if the microdrive receives Read Sectors, which is
a non-queue command,
it will be processed just after disk writing is completed. In the worst case,
delay for the Read Sectors
would be close to 15 seconds (7.5 x 2).
In light of the stuation above, IBM recommends 30 seconds as a time-out value
if the host system uses
the write cache feature.
And apparently we see that there is nothing special about them... Just don't
enable the write cache and all should be well with a timeout of 30 seconds.
next prev parent reply other threads:[~2002-03-11 16:25 UTC|newest]
Thread overview: 217+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-13 22:38 linux-2.5.5-pre1 Linus Torvalds
2002-02-13 23:16 ` linux-2.5.5-pre1 Matthias Andree
2002-02-14 2:30 ` linux-2.5.5-pre1 Jeff Garzik
2002-02-14 1:17 ` linux-2.5.5-pre1 Daniel Phillips
2002-02-14 1:35 ` linux-2.5.5-pre1 -= M.J. Prinsen =-
2002-02-14 9:22 ` linux-2.5.5-pre1 Allan Sandfeld
2002-02-14 5:31 ` linux-2.5.5-pre1 Linus Torvalds
2002-02-14 8:04 ` linux-2.5.5-pre1 bert hubert
2002-02-14 16:23 ` linux-2.5.5-pre1 Linus Torvalds
2002-02-14 16:53 ` linux-2.5.5-pre1 Thomas Capricelli
2002-02-14 14:08 ` [PATCH} 2.5.5-pre1 VESA fb Martin Dalecki
2002-02-14 15:16 ` Alan Cox
2002-02-14 15:32 ` Martin Dalecki
2002-02-14 20:49 ` Compile error with linux-2.5.5-pre1 & advansys scsi Gerold J. Wucherpfennig
2002-02-19 11:37 ` [PATCH] 2.5.5-pre1 IDE cleanup Martin Dalecki
2002-02-19 11:46 ` [PATCH] 2.5.5-pre1 IDE cleanup 9 Martin Dalecki
2002-02-22 10:07 ` Gerd Knorr
2002-02-22 13:50 ` Martin Dalecki
2002-02-22 10:42 ` Gadi Oxman
2002-02-22 13:45 ` Martin Dalecki
2002-02-22 14:03 ` Vojtech Pavlik
2002-02-22 14:12 ` Jeff Garzik
2002-02-22 14:20 ` Martin Dalecki
2002-02-22 14:16 ` Martin Dalecki
2002-02-22 14:38 ` Vojtech Pavlik
2002-02-22 14:46 ` Jeff Garzik
2002-02-22 14:47 ` Martin Dalecki
2002-02-22 14:58 ` Jeff Garzik
2002-02-22 15:01 ` Jeff Garzik
2002-02-22 15:12 ` Martin Dalecki
2002-02-23 8:05 ` Keith Owens
2002-02-23 14:55 ` Martin Dalecki
2002-02-22 14:16 ` Arjan van de Ven
2002-02-22 14:40 ` Vojtech Pavlik
2002-02-21 20:31 ` Gérard Roudier
2002-02-22 19:56 ` Jeff Garzik
2002-02-21 21:14 ` Gérard Roudier
2002-02-22 22:35 ` Jeff Garzik
2002-02-22 21:34 ` Vojtech Pavlik
2002-02-22 21:45 ` Greg KH
2002-02-22 21:56 ` Jeff Garzik
2002-02-22 21:59 ` Vojtech Pavlik
2002-02-22 23:06 ` Martin Dalecki
2002-02-22 14:45 ` Jeff Garzik
2002-02-21 20:39 ` Gérard Roudier
2002-02-22 19:47 ` Jeff Garzik
2002-02-21 21:01 ` Gérard Roudier
2002-02-22 20:07 ` Greg KH
2002-02-21 21:24 ` Gérard Roudier
2002-02-22 20:41 ` Greg KH
2002-02-22 21:30 ` Erik Andersen
2002-02-22 21:42 ` Greg KH
2002-02-22 21:54 ` Erik Andersen
2002-02-22 21:22 ` Erik Andersen
2002-02-21 23:17 ` Gérard Roudier
2002-02-22 22:23 ` Erik Andersen
2002-02-22 23:27 ` Rik van Riel
2002-02-22 20:09 ` Andre Hedrick
2002-02-22 20:29 ` Greg KH
2002-02-22 20:34 ` Andre Hedrick
2002-02-22 23:46 ` Vojtech Pavlik
2002-02-22 20:32 ` arjan
2002-02-22 23:44 ` Vojtech Pavlik
2002-02-23 15:35 ` [PATCH] 2.5.5 IDE cleanup 12 Martin Dalecki
2002-02-22 23:59 ` [PATCH] 2.5.5-pre1 IDE cleanup 9 Jeff Garzik
2002-02-22 19:46 ` Andre Hedrick
2002-02-22 20:06 ` Jeff Garzik
2002-02-22 20:19 ` Andre Hedrick
2002-02-22 21:47 ` Vojtech Pavlik
2002-02-22 23:02 ` Martin Dalecki
2002-02-22 23:46 ` Jeff Garzik
2002-02-23 14:53 ` Martin Dalecki
2002-02-22 21:40 ` Vojtech Pavlik
2002-02-22 21:36 ` Vojtech Pavlik
2002-02-20 10:49 ` [PATCH] 2.5.5-pre1 IDE cleanup 10 Martin Dalecki
2002-02-21 9:39 ` [PATCH] 2.5.5 IDE cleanup 11 Martin Dalecki
2002-02-21 10:53 ` Jeff Garzik
2002-02-21 11:06 ` Andre Hedrick
2002-02-21 17:27 ` Martin Dalecki
2002-02-21 17:52 ` Alan Cox
2002-02-21 17:57 ` Martin Dalecki
2002-02-21 18:14 ` Alan Cox
2002-02-21 18:44 ` Martin Dalecki
2002-02-22 15:51 ` Pavel Machek
2002-02-21 13:59 ` Alan Cox
2002-02-21 17:32 ` Martin Dalecki
2002-02-21 17:50 ` Alan Cox
2002-02-21 18:17 ` Martin Dalecki
2002-02-21 21:24 ` Andre Hedrick
2002-02-21 21:30 ` Andre Hedrick
2002-02-22 9:25 ` Flash Back -- kernel 2.1.111 Andre Hedrick
2002-02-22 10:08 ` Rik van Riel
2002-02-22 10:09 ` Jens Axboe
2002-02-22 17:06 ` Linus Torvalds
2002-02-22 18:58 ` Andre Hedrick
2002-02-23 17:56 ` Linus Torvalds
2002-02-24 4:42 ` Andre Hedrick
2002-02-24 5:38 ` Andre Hedrick
2002-02-24 6:01 ` Linus Torvalds
2002-02-24 7:30 ` Troy Benjegerdes
2002-02-24 12:18 ` Martin Dalecki
2002-02-24 20:29 ` Troy Benjegerdes
2002-02-24 20:32 ` Martin Dalecki
2002-02-24 21:15 ` Alan Cox
2002-02-24 21:11 ` Martin Dalecki
2002-02-24 21:31 ` Alan Cox
2002-02-24 21:19 ` Martin Dalecki
2002-02-24 21:25 ` nick
2002-02-24 21:32 ` Rik van Riel
2002-02-24 21:42 ` Vojtech Pavlik
2002-02-24 21:47 ` nick
2002-02-24 21:41 ` Vojtech Pavlik
2002-02-24 21:47 ` Rik van Riel
2002-02-24 21:31 ` Jeff Garzik
2002-02-24 21:40 ` Vojtech Pavlik
2002-02-24 21:46 ` Jeff Garzik
2002-02-24 21:50 ` Vojtech Pavlik
2002-02-24 22:18 ` David S. Miller
2002-02-24 20:54 ` Vojtech Pavlik
2002-02-24 21:19 ` Troy Benjegerdes
2002-02-24 21:37 ` Vojtech Pavlik
2002-02-24 22:03 ` Paul Mackerras
2002-02-24 22:08 ` Vojtech Pavlik
2002-02-24 22:23 ` Paul Mackerras
2002-02-24 22:37 ` Troy Benjegerdes
2002-02-24 23:08 ` Chris Wedgwood
2002-02-24 22:01 ` Paul Mackerras
2002-02-24 22:10 ` Vojtech Pavlik
2002-02-24 22:25 ` Paul Mackerras
2002-02-24 22:27 ` Andre Hedrick
2002-02-24 22:48 ` Vojtech Pavlik
2002-02-25 8:49 ` Martin Dalecki
2002-02-24 22:39 ` Vojtech Pavlik
2002-02-24 22:44 ` David S. Miller
2002-02-24 22:51 ` Vojtech Pavlik
2002-02-24 22:59 ` Troy Benjegerdes
2002-02-24 23:02 ` Vojtech Pavlik
2002-02-24 23:26 ` Paul Mackerras
2002-02-27 15:59 ` Remco Post
2002-02-24 23:12 ` Chris Wedgwood
2002-02-24 23:10 ` Chris Wedgwood
2002-02-24 23:01 ` Alan Cox
2002-02-24 20:52 ` Vojtech Pavlik
2002-02-24 23:04 ` Chris Wedgwood
2002-02-24 9:27 ` Andre Hedrick
2002-02-24 12:28 ` [PATCH] IDE clean 12 3rd attempt Martin Dalecki
2002-02-24 16:14 ` Greg KH
2002-03-08 15:46 ` [PATCH] 2.5.6 IDE 18 Martin Dalecki
2002-03-08 16:42 ` Richard Gooch
2002-03-09 12:56 ` Martin Dalecki
2002-02-24 10:23 ` Flash Back -- kernel 2.1.111 Vojtech Pavlik
2002-02-24 12:14 ` Martin Dalecki
2002-03-11 12:40 ` [PATCH] 2.5.6 IDE 19 Martin Dalecki
2002-03-11 15:19 ` Alan Cox
2002-03-11 16:23 ` Martin Dalecki [this message]
2002-03-11 16:58 ` Alan Cox
2002-03-11 17:03 ` Martin Dalecki
2002-03-11 17:10 ` Charles Cazabon
2002-03-11 17:30 ` Alan Cox
2002-03-11 18:23 ` Martin Dalecki
2002-03-11 19:41 ` Alan Cox
2002-03-11 18:00 ` Andre Hedrick
2002-03-11 19:03 ` [PATCH] 2.5.6 IDE 19, return of taskfile Gunther Mayer
2002-03-11 19:14 ` Andre Hedrick
2002-03-11 19:22 ` Gunther Mayer
2002-03-11 19:23 ` Martin Dalecki
2002-03-12 9:52 ` Zwane Mwaikambo
2002-03-11 19:47 ` Alan Cox
2002-03-11 19:38 ` Alexander Viro
2002-03-11 19:42 ` Andre Hedrick
2002-03-11 19:55 ` Alexander Viro
2002-03-11 20:02 ` Alan Cox
2002-03-13 12:55 ` Pavel Machek
2002-03-15 17:49 ` john slee
2002-03-16 2:26 ` Erik Andersen
2002-03-11 19:39 ` Andre Hedrick
2002-03-12 1:48 ` [PATCH] 2.5.6 IDE 19 Pavel Machek
2002-03-11 21:50 ` Barry K. Nathan
2002-03-12 1:44 ` Pavel Machek
2002-03-11 17:42 ` Andre Hedrick
2002-03-11 18:08 ` Alan Cox
2002-03-11 18:05 ` Anton Altaparmakov
2002-03-11 19:39 ` Alan Cox
2002-03-11 22:02 ` Vojtech Pavlik
2002-03-11 22:01 ` Vojtech Pavlik
2002-03-12 8:58 ` Joachim Breuer
2002-03-11 22:06 ` Anton Altaparmakov
2002-03-11 22:10 ` Anton Altaparmakov
2002-03-11 18:06 ` Wayne Whitney
2002-03-11 18:27 ` Andre Hedrick
2002-03-11 18:51 ` Martin Dalecki
2002-03-11 19:02 ` Andre Hedrick
2002-03-11 19:12 ` Martin Dalecki
2002-03-11 19:24 ` Andre Hedrick
2002-03-11 19:30 ` Martin Dalecki
2002-03-11 19:35 ` Andre Hedrick
2002-03-11 19:51 ` Davide Libenzi
2002-03-11 19:51 ` Andre Hedrick
2002-03-11 21:19 ` Rik van Riel
2002-03-11 22:44 ` Davide Libenzi
2002-03-13 19:19 ` David Ford
2002-03-12 0:00 ` Jos Hulzink
2002-03-12 5:17 ` Andre Hedrick
2002-03-11 19:27 ` Russell King
2002-03-11 17:53 ` Arjan van de Ven
2002-03-11 19:04 ` Martin Dalecki
2002-03-11 21:02 ` Rik van Riel
2002-03-11 22:44 ` Alan Cox
2002-03-12 0:47 ` Bill Davidsen
2002-03-12 0:28 ` Pavel Machek
2002-03-13 14:14 ` [PATCH] IDE 21 Martin Dalecki
2002-03-13 17:42 ` Vojtech Pavlik
2002-02-22 10:12 ` Flash Back -- kernel 2.1.111 Pedro M. Rodrigues
2002-02-22 19:03 ` Andre Hedrick
2002-02-22 19:56 ` Alan Cox
2002-02-22 19:38 ` Andre Hedrick
2002-02-22 10:37 ` David S. Miller
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=3C8CDA0D.7020703@evision-ventures.com \
--to=dalecki@evision-ventures.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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