Submit Search
Upload
Interrupts
•
14 likes
•
48,275 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
linux device driver
linux device driver
Rahul Batra
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Board Bringup
Board Bringup
Anil Kumar Pugalia
Linux device drivers
Linux device drivers
Abhishek Sagar
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
Recommended
linux device driver
linux device driver
Rahul Batra
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Board Bringup
Board Bringup
Anil Kumar Pugalia
Linux device drivers
Linux device drivers
Abhishek Sagar
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
Message Signaled Interrupts
Message Signaled Interrupts
Anshuman Biswal
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
shimosawa
Block Drivers
Block Drivers
Anil Kumar Pugalia
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Linux Device Tree
Linux Device Tree
艾鍗科技
ARM architcture
ARM architcture
Hossam Adel
Making Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
UART
UART
Naveen Kumar
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Spi drivers
Spi drivers
pradeep_tewani
Linux dma engine
Linux dma engine
pradeep_tewani
FreeRTOS
FreeRTOS
Ankita Tiwari
USB Drivers
USB Drivers
Anil Kumar Pugalia
Linux Network Stack
Linux Network Stack
Adrien Mahieux
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
File System Modules
File System Modules
Anil Kumar Pugalia
More Related Content
What's hot
Message Signaled Interrupts
Message Signaled Interrupts
Anshuman Biswal
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
shimosawa
Block Drivers
Block Drivers
Anil Kumar Pugalia
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Linux Device Tree
Linux Device Tree
艾鍗科技
ARM architcture
ARM architcture
Hossam Adel
Making Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
UART
UART
Naveen Kumar
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Spi drivers
Spi drivers
pradeep_tewani
Linux dma engine
Linux dma engine
pradeep_tewani
FreeRTOS
FreeRTOS
Ankita Tiwari
USB Drivers
USB Drivers
Anil Kumar Pugalia
Linux Network Stack
Linux Network Stack
Adrien Mahieux
What's hot
(20)
Message Signaled Interrupts
Message Signaled Interrupts
Linux DMA Engine
Linux DMA Engine
I2C Drivers
I2C Drivers
SPI Drivers
SPI Drivers
PCI Drivers
PCI Drivers
Character Drivers
Character Drivers
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
Block Drivers
Block Drivers
Platform Drivers
Platform Drivers
Linux Device Tree
Linux Device Tree
ARM architcture
ARM architcture
Making Linux do Hard Real-time
Making Linux do Hard Real-time
UART
UART
Linux Porting
Linux Porting
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
Spi drivers
Spi drivers
Linux dma engine
Linux dma engine
FreeRTOS
FreeRTOS
USB Drivers
USB Drivers
Linux Network Stack
Linux Network Stack
Viewers also liked
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
File System Modules
File System Modules
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
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
(12)
Serial Drivers
Serial Drivers
File System Modules
File System Modules
Kernel Debugging & Profiling
Kernel Debugging & Profiling
References
References
gcc and friends
gcc and friends
Embedded C
Embedded C
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
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Hyundai Motor Group
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Deakin University
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Enjoy Anytime
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
null - The Open Security Community
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Recently uploaded
(20)
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
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?