Page MenuHomeFreeBSD

bhyve/virtio-scsi: Support multiple backends
ClosedPublic

Authored by rosenfeld_grumpf.hope-2000.org on Oct 20 2025, 5:46 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jun 5, 1:10 PM
Unknown Object (File)
Fri, Jun 5, 1:26 AM
Unknown Object (File)
Thu, Jun 4, 2:54 PM
Unknown Object (File)
Thu, Jun 4, 7:41 AM
Unknown Object (File)
Thu, Jun 4, 5:58 AM
Unknown Object (File)
Thu, Jun 4, 5:16 AM
Unknown Object (File)
Thu, Jun 4, 12:02 AM
Unknown Object (File)
Thu, Jun 4, 12:02 AM

Details

Summary

In order to support multiple backends for virtio-scsi, we should isolate
the core of virtio-scsi from the backend-specific code. The existing
interface to CTL will become the new "CTL" backend for virtio-scsi.

Care has been taken to keep compatibility with previous configurations:
The first backend linked (CTL) will be the default backend if none is
specified, and it does provide a default configuration if no further
options such as targets are explicitly configured.

This is currently also under review in illumos: https://code.illumos.org/c/illumos-gate/+/4425

If you're curious about what another backend does look like, here's the review for the illumos USCSI(4i) backend for SCSI passthrough: https://code.illumos.org/c/illumos-gate/+/4426

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

rosenfeld_grumpf.hope-2000.org retitled this revision from bhyve/virtio-scsi: support multiple backends to bhyve/virtio-scsi: Support multiple backends.Feb 19 2026, 7:36 PM
markj added inline comments.
usr.sbin/bhyve/pci_virtio_scsi_ctl.c
173

Same style issue below.

This revision is now accepted and ready to land.Feb 22 2026, 5:24 PM
This revision now requires review to proceed.Mar 12 2026, 8:34 PM
This revision is now accepted and ready to land.Mar 14 2026, 3:05 AM
This revision now requires review to proceed.Mar 14 2026, 11:07 AM
usr.sbin/bhyve/pci_virtio_scsi_ctl.c
145

This will do the wrong thing if nvl == NULL.

176

I guess this should be sc->vss_backend?

usr.sbin/bhyve/pci_virtio_scsi_ctl.c
145

It should never be NULL as the "target" node is always created before this is called. I replaced the NULL check above with an assertion to that effect.

markj added inline comments.
usr.sbin/bhyve/pci_virtio_scsi_ctl.c
150
This revision is now accepted and ready to land.Tue, May 26, 1:49 AM
This revision now requires review to proceed.Tue, May 26, 7:24 AM
This revision was not accepted when it landed; it landed in state Needs Review.Tue, May 26, 4:07 PM
This revision was automatically updated to reflect the committed changes.