On Wed, Jun 12, 2024 at 01:12:43PM +0200, Paolo Bonzini wrote: > On Wed, Jun 12, 2024 at 1:04 PM Daniel P. Berrangé <berra...@redhat.com> > wrote: > > > > On Wed, Jun 12, 2024 at 01:55:20PM +0300, Alexander Monakov wrote: > > > Hello, > > > > > > I'm sending straightforward reverts to recent patches that bumped minimum > > > required x86 instruction set to SSE4.2. The older chips did not stop > > > working, > > > and people still test and use new software on older hardware: > > > https://sourceware.org/bugzilla/show_bug.cgi?id=31867 > > > > > > Considering the very minor gains from the baseline raise, I'm honestly not > > > sure why it happened. It seems better to let distributions handle that. > > > > Indeed distros are opinionated about the x86_64 baseline they want > > to target. > > > > While RHEL-9 switched to a x86_64-v2 baseline, Fedora has repeatedly > > rejected the idea of moving to an x86_64-v2 baseline, wanting to retain > > full backwards compat. So this assumption in QEMU is preventing the > > distros from satisfying their chosen build target goals. > > I didn't do this because of RHEL9, I did it because it's silly that > QEMU cannot use POPCNT and has to waste 2% of the L1 d-cache to > compute the x86 parity flag (and POPCNT was introduced at the same > time as SSE4.2). > > Intel x86_64-v2 processors have been around for about 15 years, AMD > for a little less (2011). I'd rather hear from users about the > usecases for running QEMU on such old processors before reverting, as > this does not get in the way of booting/installing distros on old > machines. Unless QEMU is run from within the installation media, which > it isn't, requiring a particular processor family does not prevent > Fedora from being installable on pre-v2 processors.
This isn't anything to do with the distro installer. The use case is that the distro wants all its software to be able to run on the x86_64 baseline it has chosen to build with. If we want to use POPCNT in the TCG code, can we not do a runtime check and selectively build pieces of code with __attribute__((target("popcnt"))), as we've done historically for the bufferiszero.c code, rather than changing the entire QEMU baseline ? With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|