2013/5/18 Norman Feske <norman.feske@...1...>
Hi Alexander,
Hello Norman!
Thank you for your comprehensive email which answered many questions I had about Genode current state!
In short, the system executes a CPU-bounded workload spends a lot of time in the idle thread, which is a contradiction. On CPU-bounded work loads, the idle thread should never be selected by the scheduler. For your tests, you may check how much time was spent in the idle thread via the Fiasco.OC kernel debugger (use 'lp', select the idle thread). As long as we see the idle thread being scheduled, we should not look too much into micro-optimizing any code paths.
Do you have a proposed solution? Like, modifying Fiasco.OC scheduler to be completely timer-driven and preemptive?
In short, we think that there is not much to gain (in terms of performance) from distributing I/O bounded work to multiple CPU threads.
This is very nice! I didn't quite like the packet_stream interface from the start, because in traditional monolithic kernels we're used to static allocate-once memory blocks, but even the current Genode block I/O implementation does not show severe performance degradation, so debugging and profiling is the best way to judge implementations.
Fortunately, I can report that there is work under way to equip Genode with a tracing infrastructure, which will allow us to gather traces about RPCs (including the actual RPC function names), contended locks, and signals. The new facility is currently developed by Josef Söntgen (cnuke at GitHub). We plan to include it in Genode 13.08.
This sounds very promising. I tried porting gprof, but as I didn't take my time to properly study how it is implemented, I did not finish that. Maybe we'll try doing it as a Summer School task at Ksys Labs. My investigations left me with the following conclusions 1. You need to enable the freebsd libc-gprof (easy task, a couple makefiles and header symlinks) 2. Implement the "profil" and "mcount" functions I think we can rely on the POSIX emulation layer for writing the gmon.out So, we could probably use gprof for some apps. Does it sound like a nice idea?
While searching for more info, today I've found the following link about gprof. http://sourceware.org/binutils/docs/gprof/Implementation.html
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main