DRV-310 · Device Drivers · Practitioner

Interrupts & Threaded IRQs — full syllabus

Interrupt handling from the hardware edge to the bottom half, and how to keep hard IRQ context short.

Duration3 full days in person · 6 half-days online
Cohortmax 14 in person · 20 online
Pricefrom SAR 7,880 in person · local pricing per city
Delivery35% principles · 20% guided investigation · 45% engineering studio

Who this course is for

Driver engineers who need interrupt handling that stays correct under load — short top halves, well-chosen bottom halves, and storms survived rather than debugged in production.

Prerequisites

Course outline

Day 1 — From pin to handler

  • Interrupt controllers, irq domains and the mapping chain
  • The interrupts property in DT and platform_get_irq
  • request_irq/free_irq and the IRQF flags
  • Top-half constraints: no sleeping, no user access, a hard time budget
  • Acking the device: the handler's first obligation

Day 2 — Deferring the work

  • Softirqs: what they are and why you will not add one
  • Tasklets and their deprecation path
  • Workqueues: ordering, concurrency and WQ flags
  • Threaded IRQs with request_threaded_irq: handler vs thread_fn
  • IRQF_ONESHOT and the shared-interrupt dev_id contract

Day 3 — Interrupts in the real world

  • Spurious interrupts and why they happen
  • IRQ storms: kernel detection, mitigation and fixing the real cause
  • Threaded IRQs under PREEMPT_RT and what changes there
  • IRQ affinity, smp_affinity and steering away from hot CPUs
  • Measuring handler cost with /proc/interrupts and the irqsoff tracer

Hands-on labs

  1. Lab: Wire a GPIO interrupt source from DT through platform_get_irq to a minimal top-half handler; count events in /proc/interrupts
  2. Lab: Move work from the top half to a workqueue, then to a threaded IRQ; measure latency and throughput for each shape
  3. Lab: Share an interrupt line between two devices, implement the dev_id check correctly and survive a spurious-IRQ flood
  4. Lab: Create an interrupt storm, watch the kernel's storm detection fire, then fix the handler to actually ack the device
  5. Lab: Compare your threaded IRQ's behaviour with and without PREEMPT_RT and capture the difference with the irqsoff tracer

Capstone project

Build the complete interrupt path for a lab device: DT mapping, a minimal top half that acks and defers, and a threaded bottom half doing the real work — then stress it with storm injection, shared-line contention and affinity steering, delivering latency distributions and a handler audit showing every top-half rule is honoured.

What you leave with

Upcoming dates

DatesWhereSeatsEarly birdRegular
18 Oct – 20 Oct 20263 full days RiyadhIn person · KAFD Conference Centre 8 of 14 —SAR 7,880
25 Oct – 27 Oct 20263 full days Kuwait CityIn person · Al Hamra Tower 3 of 14 —KWD 650
1 Nov – 3 Nov 20263 full days MuscatIn person · Knowledge Oasis Muscat 8 of 14 —OMR 810
1 Nov – 8 Nov 20266 half-days Gulf bandLive online · 09:00–13:00 GMT+3 16 of 20 —US$1,500
2 Nov – 4 Nov 20263 full days OttawaIn person · Kanata North Tech Park 3 of 14 —CAD 2,860
9 Nov – 11 Nov 20263 full days TorontoIn person · MaRS Discovery District 8 of 14 CAD 2,570until 10 OctCAD 2,860
9 Nov – 16 Nov 20266 half-days Europe bandLive online · 09:00–13:00 CET 5 of 20 US$1,350until 10 OctUS$1,500
16 Nov – 18 Nov 20263 full days LondonIn person · Shoreditch Works 3 of 14 GBP 1,480until 17 OctGBP 1,640
16 Nov – 23 Nov 20266 half-days Americas bandLive online · 13:00–17:00 ET 10 of 20 US$1,350until 17 OctUS$1,500
23 Nov – 25 Nov 20263 full days BerlinIn person · Factory Görlitzer Park 8 of 14 EUR 1,740until 24 OctEUR 1,930

Book a seat, or bring this course to your team

Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.

Course page & booking

Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.