The Curious Engineer

All blogs / OS / kernel

Stefan Hajnoczi

blog.vmsplice.net

Open source and virtualization blog

OS / kernelLinux / UnixStorage / filesystems

Posts
133 from 21 Feb 2011 to 10 Jan 2026
Posting
monthly (7 in the last year)
Kind
personal blog
Feed
https://blog.vmsplice.net/feeds/posts/default

2026 6

  1. Building a virtio-serial FPGA device (Part 4): Virtqueue processing
  2. Building a virtio-serial FPGA device (Part 6): Writing the RISC-V firmware
  3. Building a virtio-serial FPGA device (Part 5): UART receiver and transmitter
  4. Building a virtio-serial FPGA device (Part 3): virtio-serial device design
  5. Building a virtio-serial FPGA device (Part 2): MMIO registers, DMA, and interrupts
  6. Building a virtio-serial FPGA device (Part 1): Overview

2025 3

  1. What's new in VIRTIO 1.4
  2. Video and slides available for "Making io_uring Pervasive in QEMU" talk at KVM Forum 2025
  3. Profiling tools I use for QEMU storage performance optimization

2024 6

  1. Video and slides available for "IOThread Virtqueue Mapping" talk at KVM Forum 2024
  2. Where are the Supply Chain Safe Programming Languages?
  3. How to access libvirt domains in KubeVirt
  4. Key-Value Stores: The Foundation of File Systems and Databases
  5. QEMU AioContext removal and how it was done
  6. Storage literature notes on free space management and snapshots

2023 7

  1. Upcoming talk: "Trust, confidentiality, and hardening: the virtio lessons" at LPC 2023
  2. How nostr could enable peer-to-peer apps
  3. libblkio 1.3.0 is out
  4. How to debug stuck VIRTIO devices in QEMU
  5. Writing a C library in Rust
  6. Video and slides available for "vhost-user-blk: a fast userspace block I/O interface"
  7. Speaking at FOSDEM '23 about "vhost-user-blk: A fast userspace block I/O interface"

2022 6

  1. LWN article on "Accessing QEMU storage features without a VM"
  2. Using qemu-img to access vhost-user-blk storage
  3. Comparing VIRTIO, NVMe, and io_uring queue designs
  4. Debugging Flatpak applications
  5. vhost-user is coming to non-Linux hosts!
  6. Speaking at FOSDEM '22 about "What's coming in VIRTIO 1.2"

2021 12

  1. How to add debuginfo to perf(1)
  2. Peer-to-peer applications with Urbit
  3. A new approach to usermode networking with passt
  4. KVM Forum 2021 Highlights
  5. Slides available for "Bring Your Own Virtual Devices: Frameworks for Software and Hardware Device Virtualization"
  6. My performance benchmarking workflow (2021)
  7. Learning programming languages
  8. Overcoming fear of public communication in open source
  9. Milestone Systems: Software that changes how things are done
  10. Video and slides available for "The Evolution of File Descriptor Monitoring in Linux"
  11. Keeping a clean git commit history
  12. Why learning the Vim text editor is worth it

2020 20

  1. Building a git forge using git apps
  2. Understanding Peer-to-Peer Git Forges with Radicle
  3. Software Freedom Conservancy announces donation matching
  4. Git Forge Apps: Why git forges are serverless computing providers
  5. Call for QEMU Advent Calendar 2020 disk images
  6. Requirements for out-of-process device emulation
  7. On unifying vhost-user and VIRTIO
  8. Initial applications for Outreachy December-March internships Sept 20
  9. Using kcov code coverage with meson
  10. QEMU Internals: Event loops
  11. Why QEMU should move from C to Rust
  12. Rethinking event loop integration for libraries
  13. Avoiding bitrot in C macros
  14. How to check VIRTIO feature bits inside Linux guests
  15. How the Linux VFS, block layer, and device drivers fit together
  16. virtio-fs has landed in QEMU 5.0!
  17. An introduction to GDB scripting in Python
  18. Video for "virtio-fs: a shared file system for virtual machines" at FOSDEM '20 now available
  19. Why CPU Utilization Metrics are Confusing
  20. Apply for QEMU Outreachy 2020 May-August internships now!

2019 8

  1. Visiting the Centre for Computing History
  2. Software Freedom Conservancy donation matching is back!
  3. Video and slides available for "virtio-fs: A Shared File System for Virtual Machines"
  4. Determining why a Linux syscall failed
  5. What's new in VIRTIO 1.1?
  6. QEMU accepted into Google Summer of Code and Outreachy 2019
  7. VIRTIO 1.1 is available for public review until Feb 21st 2019
  8. mute-thread: a script to mute email threads with notmuch

2018 4

  1. Software Freedom Conservancy donations are being matched again!
  2. QEMU Advent Calendar 2018 is coming!
  3. Video and slides available for "Security in QEMU"
  4. How to modify kernel modules without recompiling the whole Linux kernel

2017 6

  1. My favorite software engineering books
  2. Video and slides available for "Applying Polling Techniques to QEMU: Reducing virtio-blk I/O Latency"
  3. Common disk benchmarking mistakes
  4. Tracing userspace static probes with perf(1)
  5. Packet capture coming to AF_VSOCK
  6. Slides posted for "Using NVDIMM under KVM" talk

2016 6

  1. 13 years of using Linux
  2. Making I/O deterministic with blkdebug breakpoints
  3. Git: Internals of how objects are stored
  4. Slides available for "NFS over virtio-vsock: Host/guest file sharing for virtual machines"
  5. QEMU accepted into Google Summer of Code & Outreachy 2016!
  6. QEMU Internals: How guest physical RAM works

2015 8

  1. KVM Forum 2015 slides are available!
  2. virtio-vsock: Zero-configuration host/guest communication
  3. Asynchronous file I/O on Linux: Plus ça change
  4. Tracing Linux kernel function entries/returns
  5. QEMU participating in Outreachy
  6. QEMU accepted in Google Summer of Code 2015!
  7. Slides posted for "KVM Architecture Overview: 2015 Edition"
  8. Slides posted for "Observability in KVM: Troubleshooting virtual machines"

2014 5

  1. QEMU Advent Calendar 2014 retrospective
  2. KVM Forum 2014 videos are being posted
  3. QEMU has been accepted for Google Summer of Code 2014!
  4. Slides posted for "VIRTIO 1.0: Paravirtualized I/O for KVM and beyond"
  5. Coroutines in QEMU: The basics

2013 7

  1. Distribute and provision disk images with virt-builder
  2. Google Summer of Code 2013 has finished!
  3. virtio standardization has begun
  4. Pictures from CERN
  5. QEMU.org is in Google Summer of Code 2013!
  6. QEMU Code Overview slides available
  7. New in QEMU 1.4: high performance virtio-blk data plane implementation

2012 3

  1. qemu-kvm.git has unforked back into qemu.git!
  2. GlusterFS for KVM Users and Developers at KVM Forum 2012
  3. Thoughts on Linux Containers (LXC)

2011 26

  1. QEMU 2011 Year in Review
  2. Pictures from the Computer History Museum
  3. Preparing and storing patch revisions as git tags using git-publish
  4. Enhanced VMDK support now in QEMU
  5. How to share files instantly between virtual machines and host
  6. QEMU Internals: vhost architecture
  7. KVM Forum 2011 Highlights
  8. My KVM Architecture guest post is up at Virtualization@IBM
  9. LinuxCon Japan 2011 KVM highlights
  10. KVM Slides from Red Hat Summit 2011
  11. How to capture VM network traffic using qemu -net dump
  12. KVM-Autotest Install Fest on April 14
  13. How to pass QEMU command-line options through libvirt
  14. How to use perf-probe
  15. Best practices and tuning tips for KVM
  16. How to access the QEMU monitor through libvirt
  17. QEMU.org accepted for Google Summer of Code 2011
  18. How to write trace analysis scripts for QEMU
  19. QEMU Internals: Big picture overview
  20. How to automatically run checkpatch.pl when developing QEMU
  21. QEMU Internals: Overall architecture and threading model
  22. Should I use QEMU or KVM?
  23. Advice for students applying to Google Summer of Code
  24. How to access virtual machine image files from the host
  25. Observability using QEMU tracing
  26. Near instant kernel development cycle with KVM