Vhost-user devices
Crosvm supports vhost-user devices for most virtio devices (block, net, etc ) so that device emulation can be done outside of the main vmm process.
Here is a diagram showing how vhost-user block device back-end (implementing the actual disk in userspace) and a vhost-user block front-end (implementing the device facing the guest OS) in crosvm VMM work together.

How to run
Let's take a block device as an example and see how to start vhost-user devices.
First, start vhost-user block backend with crosvm devices command, which waits for a vmm process connecting to the socket.
Then, open another terminal and start a vmm process with --vhost-user flag (the frontend).
As a result, disk.img should be exposed as /dev/vda just like with --block disk.img.