Issue: Nova doesn't appear to handle the 'policy' specified for CPU features by libvirt, resulting in hypervisors indicating they require more features than they actually do when requesting a live migration. $ virsh capabilities > temp $ virsh cpu-baseline temp Cascadelake-Server Intel ## CPU section from 'virsh capabilities' x86_64 Cascadelake-Server-noTSX Intel ## Resulting CPU Info Stored In Galera {"arch": "x86_64", "model": "Cascadelake-Server-noTSX", "vendor": "Intel", "topology": {"cells": 1, "sockets": 1, "cores": 20, "threads": 2}, "features": ["sep", "rdtscp", "clflush", "mtrr", "avx512cd", "tsc", "pat", "tsc_adjust", "xsave", "clflushopt", "movbe", "pcid", "mpx", "3dnowprefetch", "pdcm", "ht", "skip-l1dfl-vmentry", "cmov", "fsgsbase", "avx2", "fma", "x2apic", "hle", "sse2", "ss", "est", "md-clear", "msr", "syscall", "xtpr", "lm", "popcnt", "acpi", "aes", "ibrs-all", "mca", "clwb", "xsaves", "arch-capabilities", "pclmuldq", "nx", "pni", "invpcid", "pge", "pse", "apic", "pbe", "smap", "bmi1", "sse4.2", "stibp", "dca", "monitor", "abm", "avx512f", "cx8", "fxsr", "erms", "lahf_lm", "pku", "sse", "rtm", "pse36", "vme", "avx512vnni", "pdpe1gb", "smx", "adx", "cx16", "rdrand", "smep", "mce", "f16c", "rdseed", "avx512vl", "mds-no", "rdctl-no", "xgetbv1", "tsx-ctrl", "avx", "avx512bw", "pae", "ds", "tm", "vmx", "sse4.1", "invtsc", "xsavec", "intel-pt", "tsc-deadline", "avx512dq", "de", "bmi2", "dtes64", "arat", "fpu", "xsaveopt", "mmx", "ssse3", "tm2", "spec-ctrl", "ssbd", "ds_cpl"]} ## Related Nova code https://github.com/openstack/nova/blob/655cd30c9fd1753323f725f45581a56f1d17c075/nova/virt/libvirt/config.py#L670