This is a CAM SIM driver that provides support for the VMware Paravirtual SCSI controller (pvscsi).
The following tests were run for amd64 and most for i386:
Built both in-kernel and as loadable module.
Hot-add/remove of the controller (see known issues) and disks.
Various I/O workloads on different ESX backends, including with VM operations (snapshot, suspend/resume, vMotion, fault tolerance) and with ESX path failover.
Stressed with I/O for over 24 hours and to a large number of disks.
Created ISO and installed FreeBSD on a pvscsi disk.
Hot-add of the controller works but is followed by a scheduled hot-remove. This affects other VM pci devices as well.
MSI-X is blacklisted, also affects other VM pci devices (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203874)
Single thread, single outstanding I/O performance can be ~10% worse than lsisas (mpt) - the pvscsi test appears to spend more time in acpi_cpu_c1 vs sched_idletd. The difference goes away with machdep.idle=spin.
Unit Tests Skipped
Added license concern, but it shouldn't be a huge deal. haven't looked at the CAM integration yet.... That will come in time.
And in case it isn't clear, I'll drive the License issue inside of core.
(picking this at random) Core needs to get its act together and finalize the 'indirection' for license policy and guidelines. I like how this is done, generally, but will have tweaks to suggest for this silly mechanical issue to make sure this indirection is clear and unambiguous.