I could not find a proper answer for the following questions even in some well written kernel books:
They are saying that an ISR can't sleep because its not possible to reschedule an ISR as it is not connected with any process , so what happens when a higher priority interrupt preempt the executing one? the interrupted ISR will not rescheduled(execute) again ? if yes how & who will do that work?
many time we will disable interrupt (eg: 1.In critical region 2. When a fast interrupt is executing it will disable all the interrupt in the current processor) , so what will happen for the interrupts that are occurring when interrupts are disabled ? they are simply discarded? or will be stored somewhere for later execution? if yes where & how?
when an ISR is executing it will disable interrupt in the current IRQ line to avoid reentrant(preventing another ISR on the same line from being executed), but why? whats wrong if an ISR is reentrant?
*ISR=Interrupt Service Routine
*They=Book's author
fast interrupts
is outdated. This was removed from Linux quite some time ago. All interrupts should be fast. threaded interrupts replaced this feature. See: lwn.net/Articles/302043 – artless noise