On Wed, Aug 31, 2016 at 02:47:21PM -0700, no-re...@ec2-52-6-146-230.compute-1.amazonaws.com wrote: [...] > GTESTER check-qtest-x86_64 > qemu-system-x86_64: Failed initializing vhost-user memory map, consider using > -object memory-backend-file share=on > qemu-system-x86_64: vhost_set_mem_table failed: Success (0) [...] > ** > ERROR:/tmp/qemu-test/src/tests/vhost-user-test.c:149:wait_for_fds: assertion > failed: (s->fds_num)
Ouch. It looks like the ordering requirements are messier than I thought. vhost-user depends on the memory backends to be already initialized. We can't use early initialization because prealloc delays chardev init too much. We can't delay initialization because it is done after netdevs. We _really_ need to change this to simply use the ordering used on the command-line/config instead of hardcoding messy ordering requirements, but I wouldn't like to wait for a QemuOpts refactoring to fix the bug. I will take a look at the memory regions initialization path, and try to trigger the memory-backend prealloc code there. -- Eduardo