Good catch, Torsten. I stumbled across this issue a few weeks ago myself but 
didn't figure out a solution yet. See 
https://github.com/genodelabs/genode/issues/1508

On Wed, 27 May 2015 10:53:59 +0200
Torsten Frenzel <fren...@os.inf.tu-dresden.de> wrote:

> Hello,
> 
> currently, I explore Genode's tracing-feature and have a few questions 
> regarding policy modules and trace buffers:
> 
> I'm working with the 15.02 release and found two examples of policy modules, 
> called null and rpc_name. Are there other examples in branches of the repo on 
> how to implement a custom policy module. In general what are the 
> restrictions, when implementing a policy module?
> 
> Is it possible to extract more specific information for a certain event, for 
> example, the name of the destination, that was called. Furthermore, the 
> policy modules for Rpc_call and Rpc_returned events have access to a data 
> structure of type Msgbuf_base. As far as I understood the message buffer 
> contains the arch-depended marshalled data. Is there a generic mechanism to 
> interpret these data in a meaningful way inside policy module or the trace 
> monitor?
> 
> It would be helpful to accurately timestamp every recorded event with a value 
> of a real time clock. But that would require access to service that provides 
> such an information. Again, I cannot see how to get access to such a service 
> from inside the policy module, because it hasn't access to the Genode runtime 
> environment. Maybe the correct approach would be to use a fast timestamp 
> function inside the policy module and later calculate the real time value in 
> the trace monitor?
> 
> Is it possible to disable/enable specific types of events (, may be using the 
> Trace::Control data structure)?
> 
> Is there a mechanism that the trace monitor is notified, when a trace-buffer 
> is full or has reached a threshold?
> 
> 
> When I played around with the test_trace program, I noticed that loading more 
> than policy module into core fails. After some investigations I found that 
> the slab_size for the constructed allocator used in the Policy_registry class 
> for Trace::Policy objects is only 4 bytes, but Trace::Policy objects have a 
> larger size of 26 bytes. When I changed the constructor in the session 
> component as shown below everything works fine. So for some reason the 
> compiler selects the Avl_node_base::Policy class in the template.
> 
> diff -r ./base/src/core/include/trace/session_component.h . 
> 40,41c40,41
> <             Tslab<Trace::Policy, 4096>  _policies_slab;
> ---
> >             Tslab<Policy, 4096>  _policies_slab;
> 
> 
> Regards,
> Torsten
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main


-- 
Johannes Schlatow, M.Sc.

IDA, Institute of Computer and Network Engineering
Technische Universität Braunschweig
Hans-Sommer-Str. 66
38106 Braunschweig - Germany

Phone +49 531 391 - 9668

www.ida.ing.tu-bs.de
schla...@ida.ing.tu-bs.de

------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to