manniru / limbo-android

Automatically exported from code.google.com/p/limbo-android
GNU General Public License v2.0
0 stars 0 forks source link

Uses only one core on multi-core devices #19

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Run any system with CoreDuo CPU type (supposed to have 2 cores)
2. Check CPU usage in Android - for Quad-core device it will be only 25%

Please add ability to set number of CPUs in VM! And make Limbo utilize several 
cores (qemu should do that easily)

Original issue reported on code.google.com by f3flight@gmail.com on 4 Jan 2013 at 1:38

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
QEMU can emulate multiple Virtual CPUs but it does not currently support 
multithreading at the host level. Will try to add an option to specify # of 
Virtual CPUs, keep in mind this will likely have NO performance improvement in 
emulation.

Original comment by ideal2i...@gmail.com on 7 Jan 2013 at 4:00

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Feature is implemented and be include in version 0.9.5 tentatively. Notably 
performance has not changed. This might be feasible in the future if QEMU 
supports multithreaded SMP at the host level (for similar projects see COREMU).

Original comment by ideal2i...@gmail.com on 14 Jan 2013 at 12:27

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
so even on a quad core 1.6 GHz Exynos 4412 processor can only use the 1st core? 
because qemu doesnt suport actual multi threading? :-(

because if i can get all oses i use working prety normal (not fast but 
workable)with only one cpu i cant immagine how fast it could get with 2 ore 
even 4 cores.. :-)

so actually you can enable even 4 core inside your program (limbo) but they 
actually dont give anuything as qemu doesnt suport-use more than one cores... 

Original comment by AKaniog...@gmail.com on 16 Jan 2013 at 12:08

GoogleCodeExporter commented 8 years ago
Correct, qemu will emulate multiple cores within the virtual machine but it 
won't multithread across multicore CPUs at the host level since it uses only 1 
main thread for instruction execution. You'll probably see it switching cores 
but not utilizing them at the same time.

On the other end COREMU seems to utilize parallelism at the host level, looks 
promising but portability to Android might not be feasible.
http://ppi.fudan.edu.cn/coremu

Original comment by ideal2i...@gmail.com on 17 Jan 2013 at 2:24

GoogleCodeExporter commented 8 years ago
Thank you for the reply. So from what you know (probably you are well informed 
in QEMU news)  there is no plan from anyone to upgrade it to suport multicore 
CPUs at the host level?

its real sad to see limbo fight to run an os fast and (sorry ts not limbos 
fault) fail and at the same time having 3 more cpu cores running idle... :-(
multithread would really push limbo ahead.. 

Original comment by AKaniog...@gmail.com on 17 Jan 2013 at 8:41

GoogleCodeExporter commented 8 years ago
New option for SMP (multi-CPU emulation) is enabled in version 0.9.5. You might 
notice a SLIGHT increase on the bogomips and overall performance. Support for 
multi-thread at the host level will be deferred at a later point. COREMU is a 
promising solution if at all portable to Android NDK.

Original comment by ideal2i...@gmail.com on 20 Jan 2013 at 11:55