What is interruption:
Interruption is a way for some hardware to communicate asynchronously with the CPU. Exceptions are similar (the fundamental difference between interruption and exception remains to be studied and will be explained in the new Article)
Essence of Interruption:
An electrical signal sent to the interrupt controller, and then sent to the CPU by the interrupt controller. Finally, the CPU calls the previously registered interrupt controller.
Interrupt type:
Fast interrupt (sa_interrupt): disables all interrupts in the interrupt processing program.
Shared interrupt (sa_shirq): Multiple interrupt handlers share the same disconnection. When the interrupt arrives, each interrupt handler registered on the interrupt line is called.
Interrupt context:
When a process is interrupted or the lower half of the process, the kernel is in the interrupt context and is irrelevant to any process. Current is meaningless (only indicates the process that is interrupted ). In the interrupt context, sleep is not allowed. Because there is no process expression, once sleep, the Scheduler cannot be activated.
There is an interrupt stack, one page in size, which is the interrupt context.
The request_irq () function may sleep, because it includes file operations on proc.