Submit Search
Upload
Interrupts
•
14 likes
•
48,295 views
Anil Kumar Pugalia
Follow
Interrupts, SoftIRQs and their handling in Linux
Read less
Read more
Technology
Entertainment & Humor
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 18
Recommended
Bootloaders
Bootloaders
Anil Kumar Pugalia
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
U Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
USB Drivers
USB Drivers
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Recommended
Bootloaders
Bootloaders
Anil Kumar Pugalia
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
U Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
USB Drivers
USB Drivers
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
LAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg development
Linaro
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
Linux I2C
Linux I2C
KaidenYu
Linux Kernel Image
Linux Kernel Image
艾鍗科技
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Board Bringup
Board Bringup
Anil Kumar Pugalia
Memory model
Memory model
Yi-Hsiu Hsu
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Gene Chang
U boot-boot-flow
U boot-boot-flow
BabuSubashChandar Chandra Mohan
linux device driver
linux device driver
Rahul Batra
Linux Initialization Process (2)
Linux Initialization Process (2)
shimosawa
Spi drivers
Spi drivers
pradeep_tewani
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Network Drivers
Network Drivers
Anil Kumar Pugalia
More Related Content
What's hot
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
LAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg development
Linaro
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
Linux I2C
Linux I2C
KaidenYu
Linux Kernel Image
Linux Kernel Image
艾鍗科技
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Board Bringup
Board Bringup
Anil Kumar Pugalia
Memory model
Memory model
Yi-Hsiu Hsu
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Gene Chang
U boot-boot-flow
U boot-boot-flow
BabuSubashChandar Chandra Mohan
linux device driver
linux device driver
Rahul Batra
Linux Initialization Process (2)
Linux Initialization Process (2)
shimosawa
Spi drivers
Spi drivers
pradeep_tewani
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
What's hot
(20)
Arm device tree and linux device drivers
Arm device tree and linux device drivers
LAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg development
Linux Porting
Linux Porting
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linux device drivers
Linux device drivers
SPI Drivers
SPI Drivers
Uboot startup sequence
Uboot startup sequence
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linux I2C
Linux I2C
Linux Kernel Image
Linux Kernel Image
Introduction to Linux
Introduction to Linux
Board Bringup
Board Bringup
Memory model
Memory model
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
U boot-boot-flow
U boot-boot-flow
linux device driver
linux device driver
Linux Initialization Process (2)
Linux Initialization Process (2)
Spi drivers
Spi drivers
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
Viewers also liked
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Network Drivers
Network Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Block Drivers
Block Drivers
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
References
References
Anil Kumar Pugalia
gcc and friends
gcc and friends
Anil Kumar Pugalia
Embedded C
Embedded C
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
File Systems
File Systems
Anil Kumar Pugalia
Viewers also liked
(15)
Serial Drivers
Serial Drivers
Network Drivers
Network Drivers
File System Modules
File System Modules
Block Drivers
Block Drivers
Kernel Debugging & Profiling
Kernel Debugging & Profiling
References
References
gcc and friends
gcc and friends
Embedded C
Embedded C
Character Drivers
Character Drivers
Low-level Accesses
Low-level Accesses
Kernel Programming
Kernel Programming
Audio Drivers
Audio Drivers
Video Drivers
Video Drivers
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
File Systems
File Systems
Similar to Interrupts
Signals
Signals
Anil Kumar Pugalia
SR-IOV Introduce
SR-IOV Introduce
Lingfei Kong
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
Alison Chaiken
MICROCONTROLLER PROGRAMMING.pdf
MICROCONTROLLER PROGRAMMING.pdf
KarthiA15
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Rsockets ofa12
Rsockets ofa12
trustitrusti
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
FastBit Embedded Brain Academy
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
Kernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
Synchronization
Synchronization
Anil Kumar Pugalia
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
Training report on embedded sys_AVR
Training report on embedded sys_AVR
Galgotias College of Engg. & Tech.
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
With suitable diagram explain the working of 8255 a and inerrupts
With suitable diagram explain the working of 8255 a and inerrupts
ransherraj
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Intel® Software
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
NETWAYS
Summer training embedded system and its scope
Summer training embedded system and its scope
Arshit Rai
리눅스 드라이버 #2
리눅스 드라이버 #2
Sangho Park
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kuniyasu Suzaki
IRJET- Design of Low Power 32- Bit RISC Processor using Verilog HDL
IRJET- Design of Low Power 32- Bit RISC Processor using Verilog HDL
IRJET Journal
Similar to Interrupts
(20)
Signals
Signals
SR-IOV Introduce
SR-IOV Introduce
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
MICROCONTROLLER PROGRAMMING.pdf
MICROCONTROLLER PROGRAMMING.pdf
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Rsockets ofa12
Rsockets ofa12
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Embedded Software Design
Embedded Software Design
Kernel Timing Management
Kernel Timing Management
Synchronization
Synchronization
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Training report on embedded sys_AVR
Training report on embedded sys_AVR
SPI Drivers
SPI Drivers
With suitable diagram explain the working of 8255 a and inerrupts
With suitable diagram explain the working of 8255 a and inerrupts
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
Summer training embedded system and its scope
Summer training embedded system and its scope
리눅스 드라이버 #2
리눅스 드라이버 #2
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
IRJET- Design of Low Power 32- Bit RISC Processor using Verilog HDL
IRJET- Design of Low Power 32- Bit RISC Processor using Verilog HDL
More from Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Playing with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Functional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
Power of vi
Power of vi
Anil Kumar Pugalia
"make" system
"make" system
Anil Kumar Pugalia
Hardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
RPM Building
RPM Building
Anil Kumar Pugalia
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
Linux Network Management
Linux Network Management
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Threads
Threads
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Linux Memory Management
Linux Memory Management
Anil Kumar Pugalia
Linux File System
Linux File System
Anil Kumar Pugalia
More from Anil Kumar Pugalia
(20)
File System Modules
File System Modules
Processes
Processes
System Calls
System Calls
Introduction to Linux
Introduction to Linux
Playing with R L C Circuits
Playing with R L C Circuits
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Shell Scripting
Shell Scripting
Functional Programming with LISP
Functional Programming with LISP
Power of vi
Power of vi
"make" system
"make" system
Hardware Design for Software Hackers
Hardware Design for Software Hackers
RPM Building
RPM Building
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Linux Network Management
Linux Network Management
System Calls
System Calls
Timers
Timers
Threads
Threads
Processes
Processes
Linux Memory Management
Linux Memory Management
Linux File System
Linux File System
Recently uploaded
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Boston Institute of Analytics
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Recently uploaded
(20)
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Interrupts
1.
© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Interrupts
2.
2© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? W's & How's of Interrupts? The IRQ Interrupt Handling & Handlers Soft IRQs
3.
3© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. W's of an Interrupt? What is an Interrupt? Intervention to get Attention Here, from the Devices to the CPU Why is an Interrupt required? Mismatch of Device & CPU speeds Get overall better efficiency & latency
4.
4© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. How does interrupt work? Interrupt is a Hardware thing It needs Physical connection In Processors Typically have one or two interrupt lines Handled by a Interrupt Controller, called PIC And PIC informs the Processor through its one line In Micro-controllers Each GPIO can act as an interrupt line Interrupt Controller is in-built In both cases, the CPU then decodes the IRQ And calls the corresponding registered interrupt handler
5.
5© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Interrupt ReQuest (IRQ) Number derived by CPU & Board Programmed or Hard Coded with Interrupt Controller Hence, one key component of LSPs In x86 CPU Specific: 0x00 to 0x1F (Hard coded) Board Specific: 0x20 to 0xFF Header: <asm/interrupt.h> → <asm/irq.h> → irq*.h In Microcontrollers Depends on the controller Header: <asm/interrupt.h> → <asm/irq.h> → irq*.h
6.
6© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Programming Interface Header: <asm/interrupt.h> Type: typedef irqreturn_t (*irq_handler_t)(int, void *); APIs int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id); void free_irq(unsigned int irq, void *dev_id); int can_request_irq(irq, flags); Flags IRQF_TRIGGER_RISING, ..., IRQF_TRIGGER_HIGH, ... IRQF_SAMPLE_RANDOM IRQF_SHARED, ...
7.
7© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. IRQ Handler Do's & Don'ts No sleeping – direct or indirect Example: schedule_timeout, input_register_device No mutexes Rather use spin_locks, if you must Can't exchange data with User Space In their own context. current is invalid If lot to be done, break it into two Top Half & Bottom Half Need not be re-entrant May get interrupted by higher priority interrupt handlers
8.
8© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. The Additional Info IRQ Control enable_irq(irq); disable_irq(irq); IRQ Handler returns IRQ_NONE IRQ_HANDLED Check for execution state in_interrupt(); Synchronous interrupts, treated alike Exceptions to report grave runtime errors Software interrupts such as the int 0x80 used for system calls in x86 architecture
9.
9© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Message Signaled Interrupts Specifically for PCI Devices Advantages No sharing, No sync issues, More interrupts Modes: MSI or MSI-X (only one at a time) MSI (since PCI 2.2) Special Address: PCI config space Interrupts / Device: Upto 32 in powers of 2 MSI-X (since PCI 3.0) Special Address: Bus address Interrupts / Device: Sparse & upto 2048
10.
10© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. MSI/MSI-X APIs MSI int pci_enable_msi(strcut pci_dev *); int pci_enable_msi_block(strcut pci_dev *, int cnt); void pci_disable_msi(strcut pci_dev *); MSI-X int pci_enable_msix(strcut pci_dev *, struct msix_entry *, int nvec); struct msix_entry { u16 vector /* allocated irq */, entry; }; void pci_disable_msix(strcut pci_dev *);
11.
11© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Soft IRQs
12.
12© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What is a Soft IRQ? Basic Bottom Half Synchronous Interrupt Have strong locking requirements Used for the performance sensitive subsystems Not same as Software Interrupt
13.
13© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Typical Soft IRQs Timer Network Block Tasklet Scheduler High Resolution Timer
14.
14© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Linux Execution Model Interrupt Handlers Soft IRQ Handlers Kernel Threads Timer Network... Timer Network...Scheduler ... User Processes Work Q Kernel Thread User Process Pn User Process P1 ...
15.
15© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Programming Header: <linux/interrupt.h> APIs void open_softirq(int nr, void (*action)(struct softirq_action *)); void raise_softirq(unsigned int nr);
16.
16© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Top & Bottom Halves Top Half Registered through request_irq Bottom Half Tasklet Soft IRQ Context Fast & Atomic Only different tasklets can run on different CPUs Work Queue Special Kernel Process Context Allowed to sleep Can run simultaneously on different CPUs
17.
17© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? W's & How's of Interrupts? The IRQ Interrupt Handling & Handlers Message Signalled Interrupts Soft IRQs: The Bottom Halves
18.
18© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?