LINUX.ORG.RU

QEMU Accelerator Module


0

0

Fabrice Bellard добавил в CVS-репозиторий эмулятора QEMU ядерный модуль
который призван побороть падение быстродействия при эмуляции x86 на x86-архитектуре.

Модуль, к сожалению, закрытый... :(

>>> Подробности

anonymous

Проверено: Demetrio ()

Скачать и собрать такой быстрый QEMU можно с помощью следующих команд:

export CVS_RSH=ssh

export CVSROOT=:ext:anoncvs@savannah.nongnu.org :/cvsroot/qemu

cvs -z3 co qemu

cd qemu

sed -i -e 's/254/250/g' kqemu/* # во избежание конфликта с devfs (?)

./configure --target-list="i386-softmmu"

make

su -c "make install"

su -c "modprobe kqemu"

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

>Ну и быстрее чем VMWare теперь?

Ни фига не быстрее :(

>Насколько медленнее, чем запуск в реале?

На много... :(

Надо бы протестить, lame-ом что ли попробовать, с модулем , без модуля
на VMWare и в реале...

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

Ваще, чем лучше емуляторы тестить, может специализированные бенчмарки есть ?
Кто-нибудь серьёзно этим занимался ?

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

>Ваще, чем лучше емуляторы тестить, может специализированные бенчмарки есть ?

берешь любой бенчмарк и меряешь....

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

>берешь любой бенчмарк и меряешь....

Ну это понятно, я просто думаю может специфика какая-нибудь есть ?

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

>Ну это понятно, я просто думаю может специфика какая-нибудь есть ?

да нет. те же бенчмарки памяти, видео, cpu/fpu и дисковой системы

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

>> Ну это понятно, я просто думаю может специфика какая-нибудь есть ?
> да нет. те же бенчмарки памяти, видео, cpu/fpu и дисковой системы
Это не так. Эмулятор может прекрасно исполнять пользовательский
код, практически без потерь производительности, а тормоза
возникают в основном на исполнении системного кода (ring0).
Так что обычные бенчмарки тут не актуальны. Я бы сказал, лучшие
бенчмарки для эмуляторов - это скорость загрузки различных
операционок.
Обычные бенчмарки актуальны для всяких bochs, там где нет
никаких ускорений для нэйтивного кода.

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

>Это не так. Эмулятор может прекрасно исполнять пользовательский код, практически без потерь производительности, а тормоза возникают в основном на исполнении системного кода (ring0).

Именно так. Интересует-то кол-во попугаев :) чтобы сравнить. а для этого практически любой бенчмарк подойдёт

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

>Эмулятор может прекрасно исполнять пользовательский код, практически
>без потерь производительности, а тормоза возникают в основном на исполнении системного кода

У меня щас, три варианта:
1.тестить прикладухами (lame,bzip etc...)
2.http://ltp.sourceforge.net/
3.https://sourceforge.net/projects/fbsuite/

Я пока склоняюсь к 1 или 3 варианту...

Renso ★★
()

/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 работает? А то не верю, чтоб у всех такая бнопня
была.

IMNSHO
()

мне понравилось вот это:

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?

Thanks for your work,

Grzegorz Kulewski

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

> на 2.4 не знаю, но на 2.6.10-nitro4 всё нормально...

Ну, из-за какого-то эмулятора переходить с относительно стабильного ядра на мешок багов как-то неохота...

Блин, на VMWare FreeSBD не ставится, на QEMU тормозит.

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

>Ну, из-за какого-то эмулятора переходить с относительно стабильного ядра на мешок багов как-то неохота...

Ну не знаю, уже месяц на nitro4 сижу ,проблем не заметил... :)

>Блин, на VMWare FreeSBD не ставится, на QEMU тормозит.

На VMWare FreeBSD не ставится ??? Это как так ?
А на счёт тормозит, я щас oggenc-тест выложу, интересная вещь получается... :))

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

> На VMWare FreeBSD не ставится ??? Это как так ?

Посредине процесса вылетает с ошибкой vmmon. Разве ядро обновить... До 2.4.29.

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

> Именно так. Интересует-то кол-во попугаев :) чтобы сравнить. а для
> этого практически любой бенчмарк подойдёт
Все бенчмарки - обычные пользовательские процессы и не исполняют
привелегированные инструкции. А именно скорость исполнения
привелегированных инструкций может иметь существенное значение,
и может сильно различаться в разных эмуляторах, в то время как
пользовательский код просто непосредственно исполняется процом
(если использовать ядрёный модуль этот), и проверяете вы уже
далеко не эмулятор.

anonymous
()

И так... :)

Тестовый wav 37 мег...

На host-системе Duron 1200Mhz RAM 384M

$ time oggenc test.wav
Длина файла: 3м 34,0с
Оставшееся время: 0м 27,6с

real 0m27.644s
user 0m27.094s
sys 0m0.472s

Теперь qemu без Accelerator Module, Knoppix-3.2 в текстовом режиме, памяти выделено 128M...

$ time oggenc test.wav
File length: 3m 34,0s
Elapsed time: 13m 58,8s

real 13m59.355s
user 13m31.960s
sys 0m8.510s

ВНИМАНИЕ! включаем Accelerator Module...

$ time oggenc test.wav
File length: 3m 34,0s
Elapsed time: 0m 45,3s

real 0m45.857s
user 0m39.780s
sys 0m4.470s

Раз,рос 45-50s...

А теперь VMWare-4.5.2... тот же Knoppix-3.2 те же 128M...

$ time oggenc test.wav
File length: 3m 34,0s
Elapsed time: 0m 41,3s

real 0m41.419s
user 0m38.150s
sys 0m3.010s

Каждую конфигураци. прогонял несколько раз, результаты не сильно отличаются...

Видно ,что qemu c Accelerator Module практически равен по производительности
VMWare... во всяком случае на данной задаче...
хотя чисто визуально VMWare работает ,ыстрее, сдаётся мне ,что всё
упирается в графическую подсистему, потому как прорисовка в qemu кошмарная,
даже в консоли...

Renso ★★
()

Кстати, может кто знает.

После установки win2k при первом же выходе из винды сам qemu не выключается, а при последующем запуске уже винда не грузится.

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

Линукс ставится без проблем.

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

>А именно скорость исполнения привелегированных инструкций может иметь
>существенное значение, и может сильно различаться в разных эмуляторах

В принципе, приведённый тест может служить подтверждением твоих слов...
Но тогда как замерять "скорость исполнения привелегированных инструкций" ?

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

> Но тогда как замерять "скорость исполнения привелегированных
> инструкций" ?
Я уже говорил, скорее всего самый объективный тест - это просто
замерить время запуска различных операционок. Уж там-то
привелигированного кода выполняется навалом и я думаю
различия будут более существенными.

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

>Я уже говорил, скорее всего самый объективный тест - это просто замерить время запуска различных операционок.

Лана, ща несколько live-cd с секундомером прогоню... :)

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

>ну и чо прогнал?? где результы?

А про результаты уговора не было :)))
Они для унутреннего потребления :)
Пока, во всяком случае...

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

какой нафиг lame. еще impulse-tracker предложи. oggenc и только. отсталое тухлое проприетарное старье нас не интересует

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

Результат хороший, если под свеженьким 2.4.29 модуль вставится, то VMWare можно смело гнать фтопку.

А насчет видео... Надо бы покопаться. Мож это и не так, но мне кажется, что прямое отображение кадрового буфера при помощи все того же SDL/DGA/чего там еще можно вполне устроить... Интересно, почему этого еще не сделали.

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

> какой нафиг lame. еще impulse-tracker предложи. oggenc и только. отсталое тухлое проприетарное старье нас не интересует

Кстати, ради impulse tracker я и качал эту бодягу. Что сказать -- звук заикается, да и только.

Лучше сразу POV-Ray, отсталый тухлый проприетарный анонимус.

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

>Мож это и не так, но мне кажется, что прямое отображение кадрового буфера при помощи все того же SDL/DGA/чего там еще можно вполне устроить...

не так :) для vmware сделан драйвер, который просто передает команды на отрисовку примитивов хост-системе. в qemu же - банальный периодический рефреш видеопамяти эмулятора, что достаточно накладно.

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

>в qemu же - банальный периодический рефреш видеопамяти эмулятора, что достаточно накладно.

Мдя, если это так, то что-то подобное я и предпологал,но это при
эмуляции видеокарты, а вот в режиме -nographic qemu у меня чё-то не
хочет функционировать, это могло бы решить проблему прорисовки,во всяком
случае в текстовом режиме...
И ещё, интересно, что в Gentoo в USE-флагах к qemu есть sdl, надо будет копнуть...

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

>И ещё, интересно, что в Gentoo в USE-флагах к qemu есть sdl, надо будет копнуть...

Хех, блин, он через sdl и отрисовывает, зараза...

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

>>ну и чо прогнал?? где результы?
> А про результаты уговора не было :)))
Это был другой анонимус кстати, с ним вообще никаких уговоров не
было:)

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

>а вот в режиме -nographic qemu у меня чё-то не хочет функционировать,
>это могло бы решить проблему прорисовки,во всяком случае в текстовом режиме...

Короче, чё-то надо им с графикой делать, -monitor stdio , как оказалось,
положения не спасает :( ...
Так шо всё приимущество VMWare теперь заключается в работе с графикой...

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

>Это был другой анонимус кстати, с ним вообще никаких уговоров не было:)

Да вы ,блин, все на одно лицо... :)))
К стати, ща попробую bootchart заюзать для контроля за загрузкой,
я думаю это лучше чем с секундомером мерять...

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

У меня такое было когда я пытался образ qcow делать.
На cow всё нормально.

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

> в qemu же - банальный периодический рефреш видеопамяти эмулятора, что
> достаточно накладно.
Сильно самневаюсь. Обычно просто видео-память делают read-only
и трапают попытки записи. Не думаю что в qemu сделано по-другому
(хуже), хотя и не копал.

anonymous
()

Установил-таки. FreeBSD установился быстро (быстрее раз эдак в 5-7), но запускается довольно-таки задумчиво... Хотя, впрочем, по барабану, его можно не перезагружать. Тьфу на нее на прорисовку, чегой-то ssh туда не пускает. Пришло время RTFM.

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

>Сильно самневаюсь. Обычно просто видео-память делают read-only и трапают попытки записи. Не думаю что в qemu сделано по-другому (хуже), хотя и не копал.

и трапают тоже. только если каждый трап перерисовывать - производительность будет просто удручающей :) Так что всё-таки рефреш (bitblt) :)

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

Хм... Интересно, как бы его запустить в виде демона? Иметь бсдю у себя сервисом было бы даже очень неплохо...

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