In the process of refactoring some of bhyve's NVMe emulation code, I'm noticing there are a handful of mutexes. But this leads me to believe I don't understand how the emulated devices work. Is there a paper / video / code comment / etc. somewhere that explains bhyve's threading model, specifically around the emulated devices? TIA --chuck