VRT-120 · Virtualization & Containers · Advanced
virtio Device Drivers — full syllabus
The paravirtualised device model: virtqueues, transports and writing a virtio driver.
Who this course is for
Kernel and virtualisation engineers who want to understand the paravirtualised device model deeply enough to tune it, debug it, and implement it — for a custom virtio device or an offload path like vhost-user.
Prerequisites
- Kernel module development experience
- VRT-101-level KVM knowledge
- Ring buffer / DMA concepts
Course outline
Day 1 — The virtio model and virtqueues
- The virtio specification: device status lifecycle and feature negotiation
- Transports: virtio-pci and virtio-mmio
- Virtqueue anatomy: descriptor table, available and used rings
- Notifications, event suppression (EVENT_IDX) and interrupt moderation
- Where the guest/host boundary actually runs
Day 2 — The kernel's virtio stack in practice
- virtio-net and virtio-blk read in source
- virtio-scsi: when it beats virtio-blk and why
- Performance levers: multiqueue, NAPI, descriptor batching, indirect descriptors
- Measuring virtio overhead against passthrough on the same workload
- Common failure modes: stuck queues, feature mismatch, ballooning interactions
Day 3 — vhost, offload paths and writing a driver
- vhost: moving the data path into the host kernel
- vhost-user: the data path in a userspace process, and vDPA beyond it
- Defining a custom virtio device and its config space
- Writing the guest driver: probe, virtqueue setup, request/completion flow
- Testing against a QEMU device model you can instrument
Hands-on labs
- Lab: instrument virtqueue activity with virtio tracepoints and watch descriptor flow and notifications under load
- Lab: benchmark virtio-blk vs virtio-scsi vs a passed-through device on the same fio workload and explain the gap
- Lab: switch a guest NIC between virtio and vhost paths and measure throughput and latency differences
- Lab: write a guest driver for a custom QEMU virtio device and exchange real data through your own virtqueue
Capstone project
Implement a small but real virtio device pair: a QEMU-side device model (provided as a scaffold) and the Linux guest driver that binds to it, negotiates features and moves data over a virtqueue you configured. The deliverable is the driver source, a trace of feature negotiation and descriptor flow, and a short performance note comparing your device's overhead with the virtio-net measurements from the labs.
What you leave with
- A source-level understanding of virtqueues and feature negotiation
- Measured knowledge of virtio vs vhost vs passthrough trade-offs
- The ability to read and debug the in-kernel virtio drivers
- A working custom virtio driver you wrote and can extend
- Fluency with the virtio spec as a working document
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 1 Nov – 3 Nov 20263 full days | RiyadhIn person · KAFD Conference Centre | 9 of 14 | — | SAR 9,000 | |
| 1 Nov – 3 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 4 of 14 | — | KWD 740 | |
| 8 Nov – 10 Nov 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 9 of 14 | OMR 830until 9 Oct | ||
| 15 Nov – 22 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 13 of 20 | US$1,580until 16 Oct | ||
| 16 Nov – 18 Nov 20263 full days | OttawaIn person · Kanata North Tech Park | 4 of 14 | CAD 2,930until 17 Oct | ||
| 16 Nov – 18 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 9 of 14 | CAD 2,930until 17 Oct | ||
| 16 Nov – 23 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 18 of 20 | US$1,580until 17 Oct | ||
| 23 Nov – 25 Nov 20263 full days | LondonIn person · Shoreditch Works | 4 of 14 | GBP 1,680until 24 Oct | ||
| 23 Nov – 30 Nov 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 7 of 20 | US$1,580until 24 Oct | ||
| 30 Nov – 2 Dec 20263 full days | BerlinIn person · Factory Görlitzer Park | 9 of 14 | EUR 1,990until 31 Oct |
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.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.