2002-08-29 19:06:01

by James Di Toro

[permalink] [raw]
Subject: Passing kernel parameters

I went ahead on a new server and decided to set up a 2.4 kernel. Since
this was going to be a cdimage server I needed what ever HD power I could
get out of it, and more than the standard 8 loop devices. Looking around I
found that I should just be able to pass the 'idebus' and 'max_loop'
parameters to the kernel instead of having to rebuild a kernel.

Unfortunately this is not working. dmesg for ide still shows the following:

ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx

despite the fact that I've specified 'idebus=66' and the following lines note:

VP_IDE: VIA vt82c596b (rev 12) IDE UDMA66 controller on pci00:07.1

and unless I actually pass 'max_loop=255' on an insmod line mounting the
first loop device gives me:

loop: loaded (max 8 devices)

I've tried this w/ the parameters as an append line both globaly and in the
specific kernel stanza I'm loading. I've tried just the idebus parameter
alone since the max_loop parameter isn't as critical on boot (I have other
scripts mounting the 'cds').

Am I doing something wrong here? I just don't see where I've not done what
the docs say.

--
Till Later,
Jake


2002-08-29 23:13:33

by Mark Hahn

[permalink] [raw]
Subject: Re: Passing kernel parameters

> Unfortunately this is not working. dmesg for ide still shows the following:
> ide: Assuming 33MHz system bus speed for PIO modes; override with
> idebus=xx
>
> despite the fact that I've specified 'idebus=66' and the following lines note:
>
> VP_IDE: VIA vt82c596b (rev 12) IDE UDMA66 controller on pci00:07.1

note that it says *system* bus speed. that is, the clock fed to the IDE
controller (usually the PCI clock, 33 MHz). this is NOT the transfer mode!

by lying to the driver that "idebus=66", all you accomplish is making your
transfers half the speed they should be. the driver says
"since the clock period is 15ns, and I want (say) udma33
(16b every 60ns), I'll tell the controler to do 16b every 4 clocks."

alas, the real period is 30ns, so you get 16b every 120ns. voila, udma16 ;(

summary: don't lie to the driver; the default is probably correct.

regards, mark hahn.