Interaction with L4

Peter Nguyen peter.nguyen at ...29...
Tue Jan 19 07:13:31 CET 2010


To clarify what i'm doing, I've implemented a profiling environment that runs on
top of L4. More specifically, this profiling environment has adaptive
properties, where the profiling environment can react whenever certain events
occur. Currently, I've implemented this on top of Iguana, but in terms of
experimentation, there isn't a great deal that I can do. The interface to this
environment is a language, where the user expresses the profiling strategies
that should be used under certain circumstances. Currently, the language is
converted to L4 C code.

The reason why I'm looking at genode was that there was an implementation of a
HTTP server. I'd like to be able to use my language/profiling environment so
that it can monitor activity in terms of CPU usage, and also network usage,
given the IP stack. What do you think would be the best way to "link" my
profiling environment with Genode, given that virtually all the profiling code
is L4 based (there is some Iguana functionality as i mentioned before, but this
code can easily be converted to L4 code). I was thinking that it could be
implemented as part of the test suite (I've noticed a couple of test folders
that provide implementations of pagers and what not), where profiling begins
upon boot up, and then somehow providing a link between genode and my profiling


Quoting Norman Feske <norman.feske at ...1...>:

> Hi Peter,
> > I'm trying to port some code that I originally implemented in Iguana. This
> > functionality pertains to profiling functionality. In my current setup (ie.
> with
> > Iguana), I added an L4 system call (OKL4) to start and stop profiling. I'm
> > wondering whether it's possible at all to use OKL4 functionality directly
> in
> yes, that is no problem. In fact, Genode's framework libraries such as
> the IPC library directly use L4 system calls. Also, our port of OKLinux
> relies on using L4 system calls directly. However, all programs except
> for Genode's core do not have roottask privileges. So you are restricted
> to use system calls that need no special privileges. As a general rule
> of thumb, I would suggest to perform all tasks that are related to
> resource allocation (e.g., creating threads and address spaces) and
> address-space layout management (mapping) using Genode primitives only.
> If you want to use OKL4 system calls from your program, you might take
> some existing Genode code as reference, for example the IPC library:
>   base-okl4/src/base/ipc/
> There you can see that we include the OKL4 headers into a dedicated
> namespace called 'Okl4'. I suggest to stick to this scheme to avoid
> symbol-name conflicts between your code and the Genode libraries.
> > writing genode apps. The profiling code that I have implemented is L4 code,
> > where some of the code uses OKL4 IPC primitives and a small amount of
> Iguana
> > based code with regards to creating threads.
> It should be ok to use OKL4 directly for your L4-specific IPC operations
> and your custom system-call interface. For thread creation, however,
> Genode's Thread API should be used.
> Regards
> Norman
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> _______________________________________________
> Genode-main mailing list
> Genode-main at

More information about the users mailing list