Hi,
It actually turned out to be relatively easy to enable a new vhost-user device in crosvm. It worked the second time it successfully compiled (only because I hadn't wired up the command line in the first commit). You can find the branch here:
https://github.com/stsquad/crosvm/commits/add-vhost-user-rng
If you disable the internal virtio-rng device you can see the only one RNG device is the one provided by vhost-user:
# from vhost-device repo ./target/debug/vhost-device-rng --socket-path /tmp/rng.sock -c 1 -m 2048 -p 1000
# from the crosvm repo ./target/debug/crosvm run \ --disable-sandbox \ --no-rng \ --vhost-user-rng /tmp/rng.sock0 \ --rwdisk ./rootfs \ --initrd ./initrd.img-* \ -p "root=/dev/vda5" \ ./vmlinuz-*
However for some reason it's not consuming the data. I think this is due to a missing the feature negotiation of VIRTIO_F_NOTIFY_ON_EMPTY (24) but it could be something else I missed. However rather than head-bang on my own I thought I should get the branch out there so any crosvm experts can weigh in.
Have you guys written the draft abstract yet? I'd like to add a few words about the stratos vhost-user daemons.