On Tue, Jul 07, 2015 at 12:42:01PM +0200, Paolo Bonzini wrote: > ABM is only implemented as a single instruction set by AMD; all AMD > processors support both instructions or neither. Intel considers POPCNT > as part of SSE4.2, and LZCNT as part of BMI1, but Intel also uses AMD's > ABM flag to indicate support for both POPCNT and LZCNT. It has to be > added to Haswell and Broadwell because Haswell, by adding LZCNT, has > completed the ABM. > > Tested with "qemu-kvm -cpu Haswell-noTSX,enforce" (and also with older > machine types) on an Haswell-EP machine. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
For future reference: ABM was added to the KVM kernel code by commit v2.6.31-rc1~393^2~30. Some features required to run Haswell and Broadwell (FMA, BMI1, AVX2, BMI2) were added much later, at v3.3-rc1~131^2~33. Thus, any host that can run the Haswell and Broadwell CPU models today should be able to run them with ABM enabled, and this patch doesn't introduce any runnability changes in the existing CPU models. -- Eduardo