On Thu, May 20, 2010 at 14:38, loody <miloody@xxxxxxxxx> wrote: > Dear all: > Where tracing the kernel, 2.6.30, I cannot find "request_irq", which > is previous devined in kernel/irq/manage.c. I think you already saw it, but you didn't really pay attention. It's include/linux/interrupt.h. Please see http://lxr.linux.no/linux+v2.6.30.10/include/linux/interrupt.h#L113 > I see there is a new function request_threaded_irq seems to replace > request_irq if I config CONFIG_GENERIC_HARDIRQS. > But I see other device driver still use request_irq to register their interrupt. > Would anyone tell me where the function lacated and what is the > difference and why between request_irq and request_threaded_irq? I think the best answer is by reading this URL: http://lwn.net/Articles/302043/ Essentially, threaded irq handler is made to reduce latency. To be precise, by "splitting" top half into 2 parts: one that is just simply acknowledging the interrupt, and the other to do the real job usually done inside top half...but this time...the latter is done not by disabling interrupt (this is my personal understanding, since logically this is the way to reduce latency) -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ