Хотел бы я подражать процессору Athlon XP или Pentium IV на Intel Core третьего поколения. Есть ли способ запустить виртуальную машину, которая специально отключает а) новые функции процессора, такие как sse2 sse3? и б) кеш процессора?

Я использую Qemu/KVM. То, как я его запускаю, скрывает только вторжения ЦП в гостевую ОС, чьи приложения по-прежнему имеют доступ к более новым версиям хост-машины:

хозяин

$ qemu-system-i386 -cpu pentium3,enforce (...) -enable-kvm

гость

$ inxi -f
CPU:       Single core Pentium III (Katmai) (-UP-) cache: 16384 KB speed: 3292 MHz (max)                
CPU Flags: apic cmov cx8 de fpu fxsr hypervisor mca mce mmx msr mtrr pae pge pse
           pse36 sep sse tsc x2apic

$ firefox   # v.54 which requires sse2;

Работает просто отлично, как и Palemoon и mpv, которые не будут работать на процессоре без sse2, как Athlon XP (выдает «незаконную инструкцию»). Значение sse2 определенно доступно для гостевой ОС. Только приложения, которые проверяют CPUID, терпят неудачу, например:

$ chromium-browser                                                                                                       
# (...)
# Fatal error in ../../v8/src/ia32/assembler-ia32.cc, line 109                                      
# Check failed: cpu.has_sse2().                                                                     
#
#0 0x0000b40b9f0a base::debug::StackTrace::StackTrace()

То же самое происходит, когда я запускаю виртуальную машину с параметром -cpu athlon,sse2=off . Таким образом , в то время как мы можем взять reasonnable ухода , например , число ядра, скорость процессора ( с использованием cpulimit или возможности ввода / вывода (с помощью QEmu в дроссельном параметре), мы не можем ограничивать инструкции центрального процессора набора доступны для гостей, мы можем ?

1 ответ1

0

Вам придется пропустить использование KVM и заставить QEMU эмулировать все инструкции самостоятельно, чтобы инструкции перестали быть доступными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .