[mdlug] Serializing ide controllers
Robert Meier
list1c30fe42 at bellsouth.net
Tue Dec 30 23:05:22 EST 2008
Stan,
I hope the following, gleaned from google (not personal experience) will help.
> This is happening on more than one drive.
> (There are 11 drives in the system.)
An ordinary x386 machine has only 14 interrupts, (a limitation low enough
that has mandated programmer thriftiness from the 1980s).
Increases in cpu speed has reduced the time required to handle interrupts,
but increasing peripheral speed has increased the frequency of interrupts.
To date, cpu speed is clearly ahead, but losing its edge as processor
advances are slowed by physical limits, and peripheral speed catches up.
For typical systems with only 1 or two ide controllers, reserving typically
2 and sometimes an expensive 4 interrupts is sufficient to prevent any
drive requests from colliding. With 11 drives, it is infeasible to reserve
an interrupt for each and frequent collisions are almost inevitable.
>From googling, I understand that the serialize option directs the ide
drivers to poll the devices that share an interrupt and to service each
interrupt sequentially. This avoids collisions (in like manner to CDMA
radiotelephony) but requires that each hard disk wait for its neighbors
sharing the "party line" interrupt. Unless your disks are nearly
always seeking, I doubt you'll notice the difference. If this is a high
occupancy server, intended to maximize disk throughput, this might limit
your maximum throughput to half.
My casual search did not locate a current reference,
but as linux is sometimes used for disk farms, I suspect that you
(or someone else) may find a disk driver (or even a specialized distro)
that more intelligently coordinates a large number of attached disks.
Hopefully helpful,
--
Bob
"People think computers will keep them from making mistakes.
They're wrong. With computers you make mistakes faster."
-- Adam Osborne
More information about the mdlug
mailing list