On 03/29/2016 07:45 AM, Moshe Levi wrote:
libvirt tries very hard to use vfio rather than legacy kvm, because legacy kvm is old, deprecated, and "declared bad" :-). But it won't changed it to vfio if you've explicitly said that you want to use kvm. If you really want to use legacy kvm device assignment, manually set that in the config. When you do that, if the system you're running on doesn't support it, it will error out rather than switching.
Assuming that openstack uses libvirt's virDomainSave API I would expect suspending a guest to fail if it had an assigned device (since libvirt implements this by "migrating to disk", and qemu doesn't allow migration of a guest with an assigned device. But your problem is that it's trying to *attach* a device, which I wouldn't consider to be a part of a save or suspend or whatever operation. Is it possible to get more information about what leads up to this?