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@...12...ceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main



--
Regards, Alexander