I've made a bunch of changes to the IDE code to make it more thread
friendly:
* ide thread no longer consumes 60%+ cpu time when active
* seems faster than before (when it works :)
* Separate threads for each controller chip.
* interrupt triggering simplified greatly
* dma_transfer blocks until busmaster sets semaphore
Config: 256M, one serial port, no scsi or vga.
FreeBSD 6.3:
Seems ok, though it times out on occasion, but recovers
Tru64 5.1B:
Boots ok, but times out during device probe
OpenVMS 8.3:
Boots to the banner and then deadlocks
NetBSD 3.1.1:
Boots and probes ok, loses interrupts, but recovers.
Gentoo 2007.0:
Boots and hangs at its usual place.
On the timeouts: Is it possible those really _are_ timeouts and not
just problems related to sequencing? When I added a 3ms sleep to the
interrupt code (just to slow it down a tad), the timeouts shot up
something fierce. Is there any way to underclock the CPU?
Brian
|