Re: linux-kernel-digest V1 #106
Wed, 5 Jul 1995 16:31:39 -0400


I've been following this discussion of fast and slow interrupt for a while
and I'm a bit confused. Basically it concerns the API interface to the two of them.

1) How does one register a *fast* interrupt.
1.1) What calls need to be made when entering a critical section in a fast interrupt?

2) Same as one but for slow interrupt.
2.1) Ditto.

Next topic:

I'm in the process of porting the x86 serial driver to Amiga Linux running
a prototype ISA->Zorro Bus converter. The Amiga/Atari/Alpha ports have already been
abstracted into HW dep and indp parts. Any idea when we'll see this for the x86
source tree?


Why is it that interrupts are registered at init time and not open time
for drivers. Would there be any significant time savings by register the
handler at open time? At least then the kernel wouldn't have to decend the chain...


The Amiga and the Atari don't have I/O space. However, this new card creates
such a memory region. Looking through code like libvga shows the use of an ioperm
system call to gain (exclusive?) access. I think I remember reading that this
is handled in HW by the x86. Could I emulate this system call by just checking
a bitmask in an uninterruptable state? Are all the IO registers available? Seems
kind of dangerous to me...


The x86 linux allows raw device access. Why the #$^&! doesn't 680x0 Linux?
BTW, I only get 150K/sec through my A3000 SCSI to a quantum and a seacrate. This
seems disgustingly slow. This is why I'd like to have raw device access so I can see
whether the driver or the cache is slow...Under the native OS, (still pre-emptive
with a buffer cache) I can see megabytes per second. What gives?

Thank you for anything relevant to the above questions...


-Phil Mucci

P.S. Could someone give me a general run-down on the serial driver?
P.P.S. Why is the serial driver so darn fat?
P.P.P.S. What causes a general protection fault under the x86 linux.