Norman,
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 environment.
Peter
Quoting Norman Feske <norman.feske@...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/ipc.cc
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 http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main