Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tapset::irq(3stap) [debian man page]

TAPSET::IRQ(3stap)														TAPSET::IRQ(3stap)

NAME
tapset::irq - Systemtap probes for IRQ, workqueue,etc DESCRIPTION
Probe points for probing irq handler execution, softirqs, workqueues,etc workqueue.create probes creation of a new workqueue Arguments: wq_thread task_struct of the workqueue thread. cpu cpu for which the worker thread is created. workqueue.insert probes queuing of work on a workqueue. Arguments: wq_thread task_struct of the workqueue thread. work work_struct* being executed. work_func pointer to handler func. workqueue.execute probes execution of deferred work. Arguments: wq_thread task_struct of the workqueue thread. work work_struct* being executed. work_func pointer to handler func. workqueue.destroy probes destruction of each worker thread of each cpu for a workqueue. Arguments: wq_thread task_struct of the workqueue thread. irq_handler.entry Fires prior to execution of interrupt handler. Arguments: irq irq number action struct irqaction* for this interrupt number handler interrupt handler function flags flags for this irq. flags_str A formatted string of flags. dev_name name of device dev_id cookie to identify device next_irqaction pointer to next irqaction for shared interrupts dir pointer to the /proc/irq/NN/name entry thread_fn interrupt handler function for threaded interrupts thread thread pointer for threaded interrupts thread_flags flags related to thread irq_handler.exit Fires post execution of interrupt handler. Arguments: irq irq number action struct irqaction* for this interrupt number ret return value from interrupt handler that just executed. handler interrupt handler function flags flags for this irq. flags_str A formatted string of flags. dev_name name of device dev_id cookie to identify device next_irqaction pointer to next irqaction for shared interrupts dir pointer to the /proc/irq/NN/name entry thread_fn interrupt handler function for threaded interrupts thread thread pointer for threaded interrupts thread_flags flags related to thread softirq.entry triggered just before executing handler for a pending softirq Arguments: h struct softirq* for current pending softirq. vec softirq_action vector action pointer to softirq handler just about to execute. softirq.exit triggered just after executing handler for a pending softirq Arguments: h struct softirq* for just executed softirq. vec softirq_action vector action pointer to softirq handler that just finished execution. SEE ALSO
stap(1), stapprobes(3stap) IBM
TAPSET::IRQ(3stap)

Check Out this Related Man Page

REQUEST_THREADED_IRQ(9) 					Hardware Interfaces					   REQUEST_THREADED_IRQ(9)

NAME
request_threaded_irq - allocate an interrupt line SYNOPSIS
int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char * devname, void * dev_id); ARGUMENTS
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 DESCRIPTION
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 ist 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_DISABLED Disable local interrupts while processing IRQF_SAMPLE_RANDOM The interrupt can be used for entropy IRQF_TRIGGER_* Specify active edge(s) or level COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 REQUEST_THREADED_IRQ(9)
Man Page