Messages in this thread | | | From | (Johnny Tevessen) | Subject | Re: IDE spin-up improvement? | Date | 29 May 1998 16:49:00 +0200 |
| |
Hi!
> I just meant to point out to the fellow > that IDE hard drives normally (always?) spin up by themselves at boot > time.
I'm always using LoadLin to do a warm boot into Linux, so it IS possible (and mostly the case) that some of my drives are already sleeping. Of course, a hardware reset (or power-on) makes the thingies work, too.
> It looked to me as though that was the occasion he was talking > about, because he said the kernel was checking for several drives in > sequence--something it does then.
Yes, but I think you forget that booting Linux is not necessary happening at the beginning of the drives' power-cycle.
> If it is > at boot time, maybe what he wants--apart from a less sluggish drive--is a > way to have the IDE driver read from his fastest (at spinning up) drives > first, giving the slower ones a little more time to get moving.
This would not work with the current detection scheme:
[just an example, mostly it is hd[a-d]==awake,CDROM,slow,slow]:
A: spins up fast (or is awake) B: spins up slow
1. kernel checking drive A 1a. kernel sending request to A 1b. drive A responds 1c. kernel: "found harddisk, type ..." 2. kernel checking drive B 2a. kernel sending request to B 2b. drive B spins up (kernel has to wait) 2c. drive B responds 2d. kernel: "found harddisk, type ..."
okay, you see that the kernel still has to wait, since "giving the slower ones a little more time to get moving" requires to give drive B a "little kick" *before* we are checking for drive A.
I'd like to eliminate "2b" above. How about inserting something like this:
0. kernel booting 0a. kernel doing some init, processor, hardware... 0b. first init call to the IDE driver (if detected), which sends a little message to *every* IDE channel (since we have not yet checked them for drives) causing any drive to spin up 0c1 kernel doing additional work, initializing net and other stuff 0c2 meanwhile the drives spin up and do not require the kernel to wait or listen on the IDE bus now follows "1" from above. Leave "2b" out then, and: voila!
Does this work with the plain IDE (not EIDE) specification? Especially this "NOP" command without having to wait for it to succeed?
I've already seen one of my drives, a QUANTUM LIGHTNING 730A, *not* to spin up in reading the partition table from disk since it seems that the partition table was still cached in the drive's hardware cache. So, is there a way to be sure that the drive is up and running unter all circumstances, or does it not matter in this situation?
ciao, johnny -- Trust nobody. ## CrossPoint v3.11 ##
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |