ldesnogu
Well-Known Member
I decided that instead of talking of running QEMU on ARM, I would try it
I entered the project in the Beagleboard contest. Here is the summary I just
sent to the BB mailing-list.
The user mode QEMU i386 on ARM (that is a program able to run a Linux i386
program on an ARM target) has been brought back to life. A few improvements
have been done to ARM code generation.
The program has been tested both on real hardware and with QEMU ARM on
x86_64, by running nbench. On the hardware platform (140 MHz) the results
give a speed roughly similar to a 486DX@16MHz. If scaling was perfect (and
it won't), that'd mean a 486DX@60MHz on an OMAP3.
Obviously the next step is to improve speed, but given the way QEMU works
no huge speedup will be possible without heavy modifications to the dispatch
loop (about 60% of the time is spent in that loop, and only 23% in the
generated code).
Then I will turn to system mode simulation (this is the variant of QEMU that can
boot an OS), but given the current speed no miracle is to be expected.
An alternative, though probably a difficult one, would be to couple user mode
QEMU with wine. Again the speed will be an obstacle (no, WoW won't run
on this...).
Another direction could be DOS simulation to run some oldies.
To sum up: it works, but too slowly; it's optimization time
Comments and questions welcome.
I entered the project in the Beagleboard contest. Here is the summary I just
sent to the BB mailing-list.
The user mode QEMU i386 on ARM (that is a program able to run a Linux i386
program on an ARM target) has been brought back to life. A few improvements
have been done to ARM code generation.
The program has been tested both on real hardware and with QEMU ARM on
x86_64, by running nbench. On the hardware platform (140 MHz) the results
give a speed roughly similar to a 486DX@16MHz. If scaling was perfect (and
it won't), that'd mean a 486DX@60MHz on an OMAP3.
Obviously the next step is to improve speed, but given the way QEMU works
no huge speedup will be possible without heavy modifications to the dispatch
loop (about 60% of the time is spent in that loop, and only 23% in the
generated code).
Then I will turn to system mode simulation (this is the variant of QEMU that can
boot an OS), but given the current speed no miracle is to be expected.
An alternative, though probably a difficult one, would be to couple user mode
QEMU with wine. Again the speed will be an obstacle (no, WoW won't run
on this...).
Another direction could be DOS simulation to run some oldies.
To sum up: it works, but too slowly; it's optimization time
Comments and questions welcome.