qemu -enable-kvm * ​​медленнее *, чем чистая эмуляция для x86_64

821
Ahmed Masud

Запуск qemu-system-x86_64 -enable-kvm -cpu host -smp cores=4на хосте с процессором Intel Xeon / Core-2 (newgen, Family = 6) или выше (общее количество ядер на гостевой системе = 24, общая оперативная память = 196 ГБ), а гостевое ядро ​​зависает на несколько минут, а ядро ​​хоста отправляет сообщения лайк:

kvm: SMP vm создан на хосте с нестабильным TSC; гостевой TSC не будет надежным
kvm [..]: vcpu0, гостевой rIP: 0xffffffff81064724 отключен perfctr wrmsr: 0xc2 data 0xffff

Удаление -enable-kvm -cpu host... гостевой системы становится быстрее !?

Что дает?

1
Какие версии ядра вы используете с обеих сторон? Может ли это быть связано с ошибкой, исправленной патчем [x86 / tsc: исправить ошибочную скорость TSC на Skylake Xeon] (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux. мерзавец / фиксация / арка / x86 / ядро ​​/ tsc.c? ID = b511203093489eb1829cb4de86e8214752205ac6)? Lekensteyn 5 лет назад 0

1 ответ на вопрос

1
Ahmed Masud

Что ж, получается, что проблема заключается в источнике часов, используемом kvm в хост-системе. Посмотрите на вывод:

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource 

если это tcsили tcs_earlyвы нашли виновника, замените его на один из других доступных источников часов в вашей системе:

$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource 

Например, hpet (высокопроизводительный таймер событий):

$ echo hpet | sudo tee /sys/devices/system/clocksource/clocksource0/current_clocksource 
Есть ли шанс объяснить, почему `tcs` является плохим источником часов по сравнению с другими? Есть ли какие-либо другие недостатки или преимущества при смене источника синхронизации? Mokubai 5 лет назад 0
Возможная информация о причинах от Intel (https://software.intel.com/en-us/blogs/2013/06/20/eliminate-the-dreaded-clocksource-is-unstable-message-switch-to-tsc- for-a-stable), но я не убежден, поскольку он упоминает Xeon Phi как проблемный и не поддерживающий инвариантную tsc. Mokubai 5 лет назад 0
Я не понял, почему tcs clock - плохой источник, просто не было времени, чтобы взломать код kvm. Я, вероятно, проведу несколько тестов после того, как глупый проект, который я собираюсь сделать, будет завершен. Однако это определенно виновник, потому что проблема легко воспроизводится на нескольких аппаратных средствах с несколькими перестановками Ahmed Masud 5 лет назад 0

Похожие вопросы