Hello everyone,
I'm still working on NOVA(64)+VBox+Android_x86 on the Panasonic Toughpad FZ-M1 with Intel Core i5-4302Y CPU (With VT-X). After all the basic stuff is working my problem is that overall performance of the system is very bad. This issue is related to Genode as Android runs fast and with smooth animations on top of Linux+VBox and Linux+Qemu (on the same hardware).
Do you have any ideas on what might be causing the performance issues or any hints on where to investigate?
Here is what I know so far:
I used VBox's built-in performance counters to investigate the issue. Based on these counters I found that a big portion of processing time is spend on 'other' tasks (most often more than 50%). This is described as "Time spent in the VMM or preempted recently."
I found that during boot-up a lot of time is spend in the Recompiler, or more specific: on executing recompiled code. Here is an example of the performance counter as found after Android booted to welcome screen:
/PROF/REM/Runcode 52808 ticks/call (112541953198 ticks, 2131148 times, max 9428119254, min 116)
What surprises me here is the max value. Several billion ticks (should correspond to several seconds of processing time) seems to be very much for instruction emulation. However, only a small amount of time is spend in Runcode once Android is booted up. So if this is an issue, it would only speed up the boot.
I also had a look at the graphics backend and found that a significant amount of time is spend on framebuffer updates. Here it might be possible to do some optimizations. However, tests showed that this is a not the major problem. The calculation done between two frames takes too long, in comparison the update of the frame itself is only a minor part.
Recently there was a issue and a related commit added on github by Christian Prochaska. https://github.com/genodelabs/genode/issues/1284 I pulled this commit along with a chain of preceding changes. This significantly improved performance to a somewhat usable level but it is still way too slow. So far I did not test if this specific commit or some of the preceding commits are responsible for the increase in performance.
All best Christian