Chinaunix

标题: 2.6 linux内核可以配置成中断(或软中断)线程化么 [打印本页]

作者: mordorwww    时间: 2013-12-06 09:04
标题: 2.6 linux内核可以配置成中断(或软中断)线程化么
2.6 linux内核可以配置成中断(或软中断)线程化么
作者: lenky0401    时间: 2013-12-06 11:05
之前在lwn上看到过一篇文章,貌似有这个发展趋势。最后不知道是否有合入mainline。
楼主2.6哪个版本?需要查一下commit log。
作者: mordorwww    时间: 2013-12-06 11:16
lenky0401 发表于 2013-12-06 11:05
之前在lwn上看到过一篇文章,貌似有这个发展趋势。最后不知道是否有合入mainline。
楼主2.6哪个版本?需要 ...


kernel version 2.6.36
作者: asuka2001    时间: 2013-12-06 11:57
回复 1# mordorwww

/**
*        request_threaded_irq - allocate an interrupt line
*        @irq: Interrupt line to allocate
*        @handler: Function to be called when the IRQ occurs.
*                  Primary handler for threaded interrupts
*                  If NULL and thread_fn != NULL the default
*                  primary handler is installed
*        @thread_fn: Function called from the irq handler thread
*                    If NULL, no irq thread is created
*        @irqflags: Interrupt type flags
*        @devname: An ascii name for the claiming device
*        @dev_id: A cookie passed back to the handler function
*
*        This call allocates interrupt resources and enables the
*        interrupt line and IRQ handling. From the point this
*        call is made your handler function may be invoked. Since
*        your handler function must clear any interrupt the board
*        raises, you must take care both to initialise your hardware
*        and to set up the interrupt handler in the right order.
*
*        If you want to set up a threaded irq handler for your device
*        then you need to supply @handler and @thread_fn. @handler is
*        still called in hard interrupt context and has to check
*        whether the interrupt originates from the device. If yes it
*        needs to disable the interrupt on the device and return
*        IRQ_WAKE_THREAD which will wake up the handler thread and run
*        @thread_fn. This split handler design is necessary to support
*        shared interrupts.

*
*        Dev_id must be globally unique. Normally the address of the
*        device data structure is used as the cookie. Since the handler
*        receives this value it makes sense to use it.
*
*        If your interrupt is shared you must pass a non NULL dev_id
*        as this is required when freeing the interrupt.
*
*        Flags:
*
*        IRQF_SHARED                Interrupt is shared
*        IRQF_TRIGGER_*                Specify active edge(s) or level
*
*/


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2