LINUX.ORG.RU

AMD Ryzen KVM проброс видеокарты = низкая производительность

 , , ,


1

3

Всем доброго дня. Ситуация: Дома исправно трудился комп на ubuntu server с Z77 + i7 3770. Пара видеокарт + пара usb контролеров с мат. платы были проброшены в виртуалки. Работало почти идеально и поиграть и параллельно семье фильмы посмотреть или с документами поработать хватало. Из проблем было только то что иногда на второй видеокарте звук начинал скрежетать - решалось перезагрузкой. Да и одна из карт 1070 GTX не раскрывала своих возможностей, на некоторых «игорах». 3770 уже пятилетний старичок и было решено систему обновлять.

Прошлый опыт такой виртуализации был настолько гладок, что ошибочно предполагалось что это норма и все залетит в виртуалки так же легко.

Выбор пал на AMD, из за приемлемой цены за 8 ядер. Куплено: Ryzen 1700 + Asus X370 Pro Prime обновлен биос до 0803 (Beta BIOS with AGESA 1.0.0.6) Первая радость двумя щелчками поднялся с 3.0 до 3.7 Ghz на всех ядрах и стабильно работал. Выдавая 1600 очков в Cinebench (Старый i7 - 660 очков) Дешевая ОЗУ доступная в наших краях завелась на 2933 Mhz.

А вот результаты с виртуализацией - дичь : 1 - USB) . не удалось пробросить usb контролер даже один из трех что есть на мат плате. Лучший результат: тот контроллер что в самой небольшой iommu группе пробросился и работает. Но не долго минуты 2-3 после загрузки гостевого Windows 10. Потом отваливается и в диспетчере устройств висит с ошибкой. Два других в iommu группе с sata контролером и еще с десятком устройств. Выходить из группы и пробрасыватся не хотят. Слышал об ACS патче ядра. Но не знаю как это сделать ? Может ли кто описать действия для нубов как как сделать патч ядра в ubuntu server на примере этого патча ?

2 - Производительность) карта проброшена, usb проброшены как отдельные устройства. И все зря. Производительность отвратительная. В сравнении со старой сборкой где виртуалки ничем не отличались от реального железа. Тут все работает с дикими лагами. FPS в доте 2 на 1070 GTX в 1440p = 30 кадров. Второй пример взять окошко браузера за уголок порезайзить его быстрыми движениями мышки и виден каждый кадр потому что их немного. На старой сборке, это же действие отрисовывалось гладко как шёлк. Поиском найдено много тем в зарубежном нете о плохой производительности Ryzen в KVM. Вот пример: https://www.reddit.com/r/VFIO/comments/63igfa/horrible_amd_ryzen_performance/ Вроде все что рекомендовалось в подобных темах испробовано, но без результатов. (ntp=0 и немного других ключей в запуск) Причем как я понял даже на прошлых поколениях AMD ставили ntp=0.

3 - проброс второй карты) Вторую карту пробросить пока не удалось, как я понял за нее цепляется ubuntu. Виртуалка стартует экран моргает и тухнет. Картинки на экране нет. По этому вопросу пока сильно не копал, так как второй вопрос сильно опечалил. Даже если и получится пробросить вторую карту с такой производительностью оно не нужно.

Основной вопрос: есть ли у кого успешный опыт в виртуализации с AMD в таком направлении ? Ryzen или прошлые серии. Так чтобы виртуалка не отличалось от голого железа ? (учитывая что 2-5% глазом не заметить) Есть ли смысл ждать апдейтов ядра + биосов или с моря погоды или у AMD так всегда было и для них это норма ? И лучшим вариантом будет продать эту сборку и вернуться к синим ?

Попробуй теребить разработчиков KVM/QEMU. Когда они скажут, что конкретно не так — производителя материнской платы. Платформа новая, таких проблем следовало ожидать.

anonymous
()

Безусловно, на AMD всегда лучше всего пробрасывалось, я кучу чего пробросил на A10-7870K, включая radeon 7870, нвидии затычки, нвидия 1060.

Бенчи показывают или 1:1 либо +5-7% от натива, выше да.

Bruce_Lee ★★
()

Я что-то не наблюдаю твой файл конфигурации.

Bruce_Lee ★★
()
Ответ на: комментарий от Bruce_Lee

Врёти и умвр ждать долго не пришлось. Разумеется ещё и с кардинально отличающимся железом. Типикал амдун.

anonymous
()

Мой тебе совет - выкинь десяточку.
Она сама работает в гипервизоре, и потому виртуализировать ее - та еще задача.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Мой тебе совет - выкинь десяточку.

Тут кто-то недавно DOOM прошёл новый.

Она сама работает в гипервизоре

Линукс как бы тоже, и что? Не знаю, правда, будет ли в виртуализированной дисяточке работать виртуализация, как она работает в линуксе.

anonymous
()
Ответ на: комментарий от anonymous

Не знаю, правда, будет ли в виртуализированной дисяточке работать виртуализация, как она работает в линуксе.

Криво она работает. В вбоксе, например, только в 5.1 починили. До того эффект был ровно такой же, как у топикстартера.

pekmop1024 ★★★★★
()

не удалось пробросить usb контролер даже один из трех что есть на мат плате.

зачем вам юсб-контроллер? даже звук прекрасно работает без него.

2. iommu включён? поди амудэ опять намудили с нестед пейджин. я буду разочарован. то есть строка kvm-amd.npt=0 в грабе есть?

(учитывая что 2-5% глазом не замет(учитывая что 2-5% глазом не заметить) ить)

ну...у меня от 70-90 колеблется, от реальной машины.
вот мой граб
GRUB_CMDLINE_LINUX_DEFAULT=«elevator=deadline vfio-pci.ids=1002:6798,1002:aaa0 amd_iommu=on iommu=1 iommu_inclusive_mapping=1 amd_iommu=fullflush cpufreq=dom0-kernel console=xvc console=tty xen-pciback.passthrough=1 iommu=pt kvm-amd.npt=0 transparent_hugepage=never»

/etc/modprobe.d/kvm-amd.conf
options kvm-amd npt=0
и update-initramfs -a

darkenshvein ★★★★★
()
Ответ на: комментарий от darkenshvein

Чутка не понимаю как тут качественно отвечать - отвечаю всем общей

Попробуй теребить разработчиков KVM/QEMU

Есть мысли где их можно теребить / ссылки ?

Безусловно, на AMD всегда лучше всего пробрасывалось

Рад слышать что с AMD у кого то получалось, а то моим крайним AMD был K6 в школьные времена, Героев 2 помню тянул и тогда это радовало, а потом все было синим. Пока недавно не понял что за проц который хотелось бы иметь дома синим нужно отдать штуку. А тут хайп такой по AMD Ryzen. Думал дай-ка попропробую. По цифрам я правильно понял что виртуализация в плюс выводила ? Такое бывает без злоупотребления :-) ? Я к тому что бенчи это одно это же синтетика. Буй с ней. А вот настоящий опыт - «реал экспириенс» В «игорах» или окошках ? Прям в виртуалке приятней чем за голым железом было ? Стартую пока вот так:

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 16384 -cpu host,kvm=off \ -smp 8,sockets=1,cores=8,threads=1 \ -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/OVMF.fd \ -vga none -nographic \ -localtime \ -net bridge,br=br_loc -net nic,model=virtio \ -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \ -device vfio-pci,host=29:00.0,bus=root.1,addr=00.0,multifunction=on \ -device vfio-pci,host=29:00.1,bus=root.1,addr=00.1 \ -usb -usbdevice host:046d:c531 -usbdevice host:046d:c24d \ -hda /vdd/win10_work_ovmf.qcow2 \ -watchdog-action shutdown

Так хотя бы запускается.

с libvirt не получается пока даже устройствами прокинуть клаву и мышь. сгенерированный virt-manager кусок xml от общего файла:

<hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x046d'/> <product id='0xc24d'/> </source> <address type='usb' bus='0' port='3'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x046d'/> <product id='0xc531'/> </source> <address type='usb' bus='0' port='4'/> </hostdev>

вызывает ошибку при запуске через virsh start. qemu-system-x86_64: -device usb-host,hostbus=5,hostaddr=4,id=hostdev2,bus=usb.0,port=3: failed to find host usb device 5:4

Попробую семерку, отпишусь по результатам.

Мой grub пока такой: GRUB_CMDLINE_LINUX_DEFAULT=«amd_iommu=on iommu=pt»

С kvm-amd.npt=0 стартует, но гостевой Windows видит одно ядро, помогает совет с зарубежных форумов вместо -cpu host ставить -cpu Penryn, видить начинает 8 ядер. и производительность вроде бы чутка лучше, но все равно далека от натива. Очень далека.

зачем вам юсб-контроллер?

С ним за виртуалкой как за реальным компом, в мониторе USB хаб, втыкаешь что хочешь и когда хочешь и оно тыдыщ и работает без лишних кнопок заранее в конфиге попробуйте - очень удобно :-)

rcSergey
() автор топика
Ответ на: комментарий от rcSergey

failed to find host usb device 5:4

У тебя, случаем, не убунта 17.04? Я когда её пробовал ещё в бетте, то ни одного usb устройства прокинуть не смог именно из-за этой херни. Номера девайсов правильные, а libvirt матюгается, что найти их не может. В дебьяне с тем же конфигом виртуалка поднялась без всяких проблем.

Почему amd_iommu=on, а не iommu=1? Вроде, раньше было достаточно только этой опции для включения iommu на амд? Без всяких iommu=pt.

anonymous
()
Ответ на: комментарий от rcSergey

Ещё попробуй поменять чипсет на i440fx. В последних версиях q35 стал сильно глючить.

PS Советую настроить vm через virt-manager, забив пока на проброс usb. Если запустится, то можно будет взять сгенерированную команду запуска vm за основу для использования в скрипте. И уже бороться с usb.

anonymous
()

Первая радость двумя щелчками поднялся с 3.0 до 3.7 Ghz на всех ядрах и стабильно работал

А если разгон убрать, проблема остаётся?

router ★★★★★
()

3770 уже пятилетний старичок и было решено систему обновлять.

А его купил в 2017 взамен Dualcore E6500

Из проблем было только то что иногда на второй видеокарте звук начинал скрежетать - решалось перезагрузкой. Да и одна из карт 1070 GTX не раскрывала своих возможностей, на некоторых «игорах»

УМВР с 7870HD на Witcher 3

Производительность отвратительная. В сравнении со старой сборкой где виртуалки ничем не отличались от реального железа. Тут все работает с дикими лагами.

Мои соболезнования

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от router

Но нафиг он нужен без разгона? )

anonymous
()

Определённо, не раньше следующего лета брать... Сыро пока.

targitaj ★★★★★
()

Прочитал про переброску видеокарты... АД, до просто и понятно еще далеко, нужна вторая видеокарта (интеграшка), два монитора или хитрое подключение на два входа, шаринг мышки и клавы...

FiXer ★★☆☆☆
()
Ответ на: комментарий от mersinvald

Это была ирония :) Я помню, что это Motif (вроде).

anonymous
()
Ответ на: комментарий от Quasar

А в чем беда? Разрабы ядра/дров/квм настолько не уважают амд?

dk-
()
Ответ на: комментарий от mersinvald

Посмотри на даты регистрации и усохни. У меня этот аватар был, когда тобой тут и не пахло.

Вообще наглость - стырил и еще претензии предъявляет.

Motif ★★
()
Ответ на: комментарий от Motif

Даты регистрации в профиле есть только у новичков)

anonymous
()
Ответ на: комментарий от Motif

Про регистрацию можешь заливать что угодно, но аватар этот у меня появился раньше, а потом уже пошли плагиаторы что на хабре что тут

mersinvald ★★★★★
()
Ответ на: комментарий от mersinvald

при плагиате

Во-первых, не ты автор. Во-вторых, не вижу отличий между твоей картинкой и оригиналом.

anonymous
()

глючит виртуалка в самой винде, как тут писали она там встроена.

глючит она именно потому что на AMD виртуалка внутри виртуалки не очень то предусмотрена. это не интел где с завода мамки с руткитом приходят.

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

У тебя неверная информация, на кукурузене тоже руткит встроен, другое дело, что там под него выделен отдельное arm-ядро.

anonymous
()
Ответ на: комментарий от Motif

Ох лол. Конечно же этот мем является первоисточником, никаких сомнений.

Ясен пень мы оба не являемся авторами, но я взял его раньше, а потому ты — плагиатор.

mersinvald ★★★★★
()
Ответ на: комментарий от ckotinko

Проблеме похоже скоро десять лет стукнет.

https://sourceforge.net/p/kvm/bugs/230/

2008 год и ровно то же самое, проц AMD, с включенным npt отрисовка графики не радует. Выключаем npt графика рисуется лучше, но появляются просадки производительности в других местах. Так что похоже у AMD нормально с этим не было никогда. Думаю тут как в анекдоте Джо был неуловим так как нафиг никому не нужен был. А сейчас у них лучшая цена за 8 ядер.

Ссылка на AMD форум, все та же проблема: https://community.amd.com/message/2806770 там вроде и сотрудник AMD появлялся.

Большая просьба кому не жалко пары минут, в первом сообщении есть кнопка «У меня такой же вопрос». Сейчас счетчик 5 пользователей. Есть шанс что при большем значении цифры AMD быстрее обратит на этот вопрос внимание.

rcSergey
() автор топика
Ответ на: комментарий от rcSergey

вообще-то причина в патенте. у интела патент. в AMD обошли его как могли, но патент-то ска он такой. я когда проц придумывал, такой дряни повидал...

Но кстати поэтому-то интеломамки идут с китайским руткитом прям с завода, а AMD нет: там под руткитом VM не взлетает, дедушка Ляо палится на раз.

ckotinko ☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.