git: virtio_blk - Implement multiqueue support.

Imre Vadasz ivadasz at crater.dragonflybsd.org
Thu Dec 18 11:18:38 PST 2025


commit d57128b267bb7e189a53ff72f0e8c58fe59fa5e4
Author: Imre Vadász <imre at vdsz.com>
Date:   Fri Dec 12 21:29:21 2025 +0100

    virtio_blk - Implement multiqueue support.
    
    * For now, this code uses at most as many virtqueues as cpu cores and
      interrupts are available. The number of virtqueues can also be capped via
      "hw.vtblk.max_queues" and "hw.vtblk.X.max_queues" tunables (also useful
      for benchmarking different scenarios).
    
    * Since virtio interrupts are currently tied together with the per-queue
      serializer lock, a fixed 1:1 mapping between interrupts and virtqueues is
      used for now, for simplicity. To support multiple virtqueues to share a
      single interrupt properly, it's going to be far more elegant if we have a
      separate serializer for each virtqueue, and not just for each interrupt.

Summary of changes:
 share/man/man4/virtio_blk.4               |   6 +-
 sys/dev/virtual/virtio/block/virtio_blk.c | 369 ++++++++++++++++++------------
 2 files changed, 232 insertions(+), 143 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d57128b267bb7e189a53ff72f0e8c58fe59fa5e4


-- 
DragonFly BSD source repository


More information about the Commits mailing list