Feature #12680


want PCI pass-thru in bhyve

Added by Patrick Mooney over 2 years ago. Updated about 2 years ago.

Start date:
Due date:
% Done:


Estimated time:
Gerrit CR:


As part of the bhyve porting effort, support for PCI pass-thru was wired up in the illumos version.
This represents the upstreaming effort for the consolidated commits to implement the change

The PPT-related SmartOS issues it's comprised of:
- OS-6674 port bhyve pci-passthru to illumos
- OS-6685 bhyve ppt should facilitate PCI access
- OS-6771 ppt device nodes sometimes disappear after module unloading
- OS-6855 bhyve ppt should verify BAR mappings
- OS-6738 bhyve ppt should not use /dev/mem
- OS-6894 set passthru flag when ppt devices are assigned to a VM
- OS-6760 bhyve passthru devices should use physical path
- OS-7528 update bhyve pkg manifest from OmniOS
- OS-7572 bhyve: stop shipping and
- OS-6937 support large page mapping for bhyve IOMMU domains
- OS-6740 bhyve vtd leaks mapping resources
- OS-7031 panic in ppt_bar_crawl()
- OS-7074 deadlock with vmm_detach() and iommu_cleanup()

It also includes pieces from bhyve-general SmartOS updates which covered bhyve, viona, and PPT.

Related issues

Related to illumos gate - Bug #12781: /etc/ppt_aliases needs to be in the boot archiveClosedAndy Fiddaman

Related to illumos gate - Bug #12813: pptadm and libppt are x86 onlyClosedToomas Soome

Actions #1

Updated by Patrick Mooney about 2 years ago

  • Description updated (diff)
Actions #2

Updated by Patrick Mooney about 2 years ago

I've compared the downstream (SmartOS) sources with this proposed patch, and we match for all of the PPT and bhyve related bits. PPT never rose to the same level of importance in the product as general bhyve usage did, so the amount of testing done around it is not as rigorous. There were devices such as NICs which engineers and folks in the community were able to successfully paint into bhyve instances. Considering the small blast radius of PPT (bhyve can operate just fine with it in place, but inactive) it's probably safe to iterate in-gate.

Actions #3

Updated by Patrick Mooney about 2 years ago

Hans built this patchset to test on OI. With it loaded, he was able to pass-thru a wireless device into a Linux guest. The guest successfully loaded its driver and attached to the device (loading firmware into it as part of the process). This all lines up with the expectations set by operation in SmartOS and OmniOSce.

Actions #4

Updated by Andy Fiddaman about 2 years ago

  • Related to Bug #12781: /etc/ppt_aliases needs to be in the boot archive added
Actions #5

Updated by Electric Monk about 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit eb9a1df2aeb866bf1de4494433b6d7e5fa07b3ae

commit  eb9a1df2aeb866bf1de4494433b6d7e5fa07b3ae
Author: Hans Rosenfeld <>
Date:   2020-05-22T14:27:14.000Z

    12680 want PCI pass-thru in bhyve
    Portions contributed by: Patrick Mooney <>
    Portions contributed by: John Levon <>
    Portions contributed by: Andy Fiddaman <>
    Reviewed by: Patrick Mooney <>
    Approved by: Dan McDonald <>

Actions #6

Updated by Joshua M. Clulow about 2 years ago

  • Related to Bug #12813: pptadm and libppt are x86 only added

Also available in: Atom PDF