Handling interrupts in user space
Posted Mar 25, 2005 6:00 UTC (Fri) by goaty
Parent article: Handling interrupts in user space
It seems to me that if we're going to require the kernel to have some knowledge of how to handle interrupts, we may as well make it pluggable.
In other words, when our userspace driver starts up, it loads two modules, one which contains the infrastructure for userspace module delivery, and another which contains the logic necessary to confirm receipt of an interrupt.
Drivers that only handle simple edge-trigger interrupts could simply load the module for that case (which would be effectively a null implementation) and not need any further configuration.
Drivers that needed more fully-fledged interrupt handling could upload a module that supported the interface Alan Cox suggested. Perhaps it could be programmed by module parameters? IIRC, the infrastructure to make that trivial is already in place.
Drivers with really complex interrupt requirements would obviously need their own module, but it would still be simpler than writing the whole driver in kernelspace. The benefit is that this complexity can be supported without complicating things for other users of the interface.
I think this idea has enormous potential. Drivers could be prototyped in Perl or your favourite rapid-turnaround language. You could even do it interactively.
to post comments)