optimization levels in genode

lzSun 1137480042 at qq.com
Fri Nov 9 13:49:00 CET 2018


Hello,Stefan
>did you followed my advice to first enable the FPU in the kernel?
>Otherwise it is totally clear to not work at all, because -O3 compiledcode make heavily use of the >FPU.

Thanks for your patient reply. I have tried to compile the hard-float genode toolchain by modifying the repos/tool/tool_chain like this:
-TARGET_NAME_arm        = arm-none-eabi
+TARGET_NAME_arm        = arm-none-eabihf
And I use tool_chain script to compile hard-float compiler by "./tool/tool_chain arm" command. Then , I followed your advice to enable the FPU in the kernel according to this patch[1]. But when I want to build the project by "make run/tz_vmm", the compiling stage seems completed, but there's error occurred in linking stage.The error message like this:


genode build completed
using 'hw_timer_drv' as 'timer'
using 'ld-hw.lib.so' as 'ld.lib.so'
core link address is 0x80000000
/usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/../../../../arm-none-eabihf/bin/ld: error: var/run/tz_vmm.core uses VFP register arguments, /usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/libgcc.a(_fixsfdi.o) does not



I am a little confused.  I think I have build the hard-float compiler and enabled the FPU in the kernel. Did I missed something? 
I also tried to change the flag "-mfloat-abi=hard" to "-mfloat-abi=softfp" in repos/base/mk/global.mk and repos/base/mk/spec/arm_v7a.mk, then the project can
be  build successfully but still stuck at "Starting kernel ..." at booting stage.


>I've compiled a hard-float compiler like advised to you, took that topic branch, and recognized that for the i.MX53 one needs to set the
>-mfpu flag to neon. Then I could measure the performance gain on the i.MX53 Quickstart board. I've updated my topic branch to be
>ready-to-merge, and prepared a topic branch that uses hard-float neon FPU at least on i.MX53 here:



Thank you very much  for providing such a patch to me. But since the patch you provided is based on  genode 18.08 and I am using 18.05 now, I can't use "git diff" command to see which files are modified. Because there are too many file changes. And it seems that the patch you provided can not be used by me directly. So, as I said before, I refer to this patch[1] to enable FPU in kernel.At beginning, I just modify the file that I think related to i.mx53 ,here's the list of  those file. Then, I also tried to modify all the file related to the patch[1] but the result have not changed . I know my questions  are quite more and odd, please do not mind and thanks for your patience.



[1] https://github.com/skalk/genode/commit/cf02346cef59a6752c9a07494d812c8ada701517
[2] 
 repos/base-hw/lib/mk/spec/armv7/core-hw.inc
 repos/base-hw/src/bootstrap/spec/arm/crt0.s
 repos/base-hw/src/core/spec/arm/cpu_support.h
 repos/base-hw/src/core/spec/arm/exception_vector.s
 repos/base-hw/src/core/spec/arm/kernel/thread.cc
 repos/base-hw/src/core/spec/arm/vfpv3-d32.s
 repos/base/mk/spec/arm_v7a.mk




------------------
Best wishes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20181109/27f22fa1/attachment.html>


More information about the users mailing list