Fabrice Bellard добавил в CVS-репозиторий эмулятора QEMU ядерный модуль
который призван побороть падение быстродействия при эмуляции x86 на x86-архитектуре.
>> Ну это понятно, я просто думаю может специфика какая-нибудь есть ?
> да нет. те же бенчмарки памяти, видео, cpu/fpu и дисковой системы
Это не так. Эмулятор может прекрасно исполнять пользовательский
код, практически без потерь производительности, а тормоза
возникают в основном на исполнении системного кода (ring0).
Так что обычные бенчмарки тут не актуальны. Я бы сказал, лучшие
бенчмарки для эмуляторов - это скорость загрузки различных
операционок.
Обычные бенчмарки актуальны для всяких bochs, там где нет
никаких ускорений для нэйтивного кода.
>Это не так. Эмулятор может прекрасно исполнять пользовательский код, практически без потерь производительности, а тормоза возникают в основном на исполнении системного кода (ring0).
Именно так. Интересует-то кол-во попугаев :) чтобы сравнить. а для этого практически любой бенчмарк подойдёт
>Эмулятор может прекрасно исполнять пользовательский код, практически
>без потерь производительности, а тормоза возникают в основном на исполнении системного кода
/lib/modules/2.4.26-1-k7/misc/kqemu.o: insmod /lib/modules/2.4.26-1-k7/misc/kqemu.o failed
/lib/modules/2.4.26-1-k7/misc/kqemu.o: insmod kqemu failed
lager:/usr/local/src/qemu/kqemu# insmod -f kqemu.o
kqemu.o: kqemu.o: unresolved symbol vmalloc_to_page_Rsmp_46231cea
kqemu.o: kqemu.o: unresolved symbol get_user_pages_Rsmp_70a20af8
kqemu.o: kqemu.o: unresolved symbol __out_of_line_bug_Rsmp_8b0fd3c5
kqemu.o: kqemu.o: unresolved symbol get_zeroed_page_Rsmp_0c2188c7
kqemu.o: kqemu.o: unresolved symbol si_meminfo_Rsmp_b3a307c6
kqemu.o: kqemu.o: unresolved symbol mem_map_Rsmp_831df8e5
kqemu.o: kqemu.o: unresolved symbol vsnprintf_Rsmp_57a6504e
kqemu.o: kqemu.o: unresolved symbol unregister_chrdev_Rsmp_c192d491
kqemu.o: kqemu.o: unresolved symbol __vmalloc_Rsmp_79995c5b
kqemu.o: kqemu.o: unresolved symbol printk_Rsmp_1b7d4074
kqemu.o: kqemu.o: unresolved symbol kfree_Rsmp_037a0cba
kqemu.o: kqemu.o: unresolved symbol set_page_dirty_Rsmp_4403ba4d
kqemu.o: kqemu.o: unresolved symbol register_chrdev_Rsmp_ab219f3f
kqemu.o: kqemu.o: unresolved symbol vfree_Rsmp_2fd1d81c
kqemu.o: kqemu.o: unresolved symbol kmalloc_Rsmp_93d4cfe6
kqemu.o: kqemu.o: unresolved symbol schedule_Rsmp_4292364c
kqemu.o: kqemu.o: unresolved symbol __free_pages_Rsmp_1b55ab79
kqemu.o: kqemu.o: unresolved symbol kernel_flag_cacheline_Rsmp_7956468f
kqemu.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. The module may be trying to access
GPLONLY symbols but the problem is more likely to be a coding or
user error. Contact the module supplier for assistance, only they
can help you.
Поставил MODULE_LICENSE("GPL"); хинт пропал, а яйца те же.
У кого на ядрах 2.4 работает? А то не верю, чтоб у всех такая бнопня
была.
1. How much? Can the money be collected by comunity (like blender)? 2. What if you will quit making qemu? 3. Are you planning to make and support it completly alone? 4. [Technical question.] Does savannah allow for not open source content in their CVS?
> Именно так. Интересует-то кол-во попугаев :) чтобы сравнить. а для
> этого практически любой бенчмарк подойдёт
Все бенчмарки - обычные пользовательские процессы и не исполняют
привелегированные инструкции. А именно скорость исполнения
привелегированных инструкций может иметь существенное значение,
и может сильно различаться в разных эмуляторах, в то время как
пользовательский код просто непосредственно исполняется процом
(если использовать ядрёный модуль этот), и проверяете вы уже
далеко не эмулятор.
Каждую конфигураци. прогонял несколько раз, результаты не сильно отличаются...
Видно ,что qemu c Accelerator Module практически равен по производительности
VMWare... во всяком случае на данной задаче...
хотя чисто визуально VMWare работает ,ыстрее, сдаётся мне ,что всё
упирается в графическую подсистему, потому как прорисовка в qemu кошмарная,
даже в консоли...
> Но тогда как замерять "скорость исполнения привелегированных
> инструкций" ?
Я уже говорил, скорее всего самый объективный тест - это просто
замерить время запуска различных операционок. Уж там-то
привелигированного кода выполняется навалом и я думаю
различия будут более существенными.
Результат хороший, если под свеженьким 2.4.29 модуль вставится, то VMWare можно смело гнать фтопку.
А насчет видео... Надо бы покопаться. Мож это и не так, но мне кажется, что прямое отображение кадрового буфера при помощи все того же SDL/DGA/чего там еще можно вполне устроить... Интересно, почему этого еще не сделали.
>Мож это и не так, но мне кажется, что прямое отображение кадрового буфера при помощи все того же SDL/DGA/чего там еще можно вполне устроить...
не так :) для vmware сделан драйвер, который просто передает команды на отрисовку примитивов хост-системе. в qemu же - банальный периодический рефреш видеопамяти эмулятора, что достаточно накладно.
>в qemu же - банальный периодический рефреш видеопамяти эмулятора, что достаточно накладно.
Мдя, если это так, то что-то подобное я и предпологал,но это при
эмуляции видеокарты, а вот в режиме -nographic qemu у меня чё-то не
хочет функционировать, это могло бы решить проблему прорисовки,во всяком
случае в текстовом режиме...
И ещё, интересно, что в Gentoo в USE-флагах к qemu есть sdl, надо будет копнуть...
>а вот в режиме -nographic qemu у меня чё-то не хочет функционировать,
>это могло бы решить проблему прорисовки,во всяком случае в текстовом режиме...
Короче, чё-то надо им с графикой делать, -monitor stdio , как оказалось,
положения не спасает :( ...
Так шо всё приимущество VMWare теперь заключается в работе с графикой...
> в qemu же - банальный периодический рефреш видеопамяти эмулятора, что
> достаточно накладно.
Сильно самневаюсь. Обычно просто видео-память делают read-only
и трапают попытки записи. Не думаю что в qemu сделано по-другому
(хуже), хотя и не копал.
Установил-таки. FreeBSD установился быстро (быстрее раз эдак в 5-7), но запускается довольно-таки задумчиво... Хотя, впрочем, по барабану, его можно не перезагружать. Тьфу на нее на прорисовку, чегой-то ssh туда не пускает. Пришло время RTFM.
>Сильно самневаюсь. Обычно просто видео-память делают read-only и трапают попытки записи. Не думаю что в qemu сделано по-другому (хуже), хотя и не копал.
и трапают тоже. только если каждый трап перерисовывать - производительность будет просто удручающей :) Так что всё-таки рефреш (bitblt) :)