LINUX.ORG.RU

Оптимальные параметры сборки для выполнения в qemu

 , , ,


0

1

Нужно запустить x86-приложение в qemu на другой архитектуре. Для этого требуется x86-окружение и желательно x86-wine.
Встал вопрос: какие флаги оптимизации (CFLAGS) и какая архитектура (i386,i686) нужны для наиболее производительной эмуляции?
Гугл не помог, но может я плохо искал?

★★★★★

можешь помыслить логически.

1) наверняка эмуляция всяких sse не быстро работает и прочих avx, поэтому стоит это всё исключить, сократить набор эмулируемых инструкций.

2) эмулияция железного устройства сложнее, чем паравиртуализация, стоит попробовать всякие virtio

3) x86 окружение и wine, может просто wine, или сразу винду? может dosbox?

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

virtio - хорошо, но тут можно ещё эффективней: user mode emulation. Тогда системные вызовы будут не транслироваться, а выполняться на хосте.

И, кстати, причём тут dosbox? Оно что, быстрее qemu?

alt-x ★★★★★
()
Ответ на: комментарий от dimon555

Предполагается user-mode эмуляция. Просто винду уже запустил, но толку от неё 0. Производительность низкая, чтобы запустить какое-то мелкое проприетарное ПО нужно как минимум минут 5 ждать загрузки ОС.
Если вы под «просто wine» подразумеваете статически собранный wine (даже не уверен, что это возможно), то в нём всё равно будут все библиотеки - т.е их всё равно собирать, чтобы получить статические архивы.
Возможно, ускоренные инструкции будут эмулироваться быстрее (хотя скорее всего это не так), тут вопрос в уровне оптимизации QEMU.
Ещё задумываюсь о PGO, однако тоно предоставляет оптимизацию на уровне кода - возможно, это не совсем то, что нужно.

mittorn ★★★★★
() автор топика

Я думаю, что никакие параметры компиляции qemu не помогут ему быстро эмулировать другую архитектуру.

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

Тут же кто-то с рекомпилятором проскакивал. Пусть идёт в жоб.

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

Быстро - не помогут, а чуть быстрее - возможно.

Единицы процентов ни на что не повлияют, если у тебя система стартует 5 минут. Какую задачу ты вообще пытаешься решить?

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

Так в user mode, ос запускать не надо - так что 5 минут сэкономятся.

И, кстати, ошибаешься насчёт единиц процентов. В system mode я экономил что-то около 10. Вполне заметно.

alt-x ★★★★★
()
Ответ на: комментарий от tailgunner

Запуск некоторых игр середины-конца 90х и некоторых программ, рткрывающих файлы загрытых форматов.

mittorn ★★★★★
() автор топика

Однако, флаги зависят от архитектуры машинки, на которой крутится qemu.

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

Так в user mode, ос запускать не надо

Спасибо, Капитан. Но топикстартер явно хочет венду или ДОС.

В system mode я экономил что-то около 10.

За счет чего?

Вполне заметно.

10% экономии на 5 минутах - это всего 0.5 минуты.

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

За счет чего?

Запретил отладку QOM, выкинул защиту стека, собрал под свой проц.

10% экономии на 5 минутах - это всего 0.5 минуты

Спасибо, Кэп. :-) У меня это было 10% от 24 часов.

alt-x ★★★★★
()
Ответ на: комментарий от mittorn

Это так долго компилировалось: мне было лень возиться с кросс-компилятором.

Посмотрел логи ещё раз: разница была почти 25%. Но, в текущем qemu, QOM уже слегка оптимизировали, и такого выигрыша не получить. Ну и в user-mode прерываний нет, так что QOM тормозов не добавляет.

Тут, кстати, кто-то хвастался, что на арме собрал нативно библиотеки wine, так что у него подобная комбинация «летала».

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