student for gsoc2008

Joel Sherrill joel.sherrill at OARcorp.com
Sun Mar 23 22:30:18 UTC 2008


Reng Zeng wrote:
> Thanks Joel's comments very much! See my input inline marked [Alan].
>
> Regards,
> Alan
>
> 2008/3/21, Joel Sherrill <joel.sherrill at oarcorp.com 
> <mailto:joel.sherrill at oarcorp.com>>:
>
>     Reng Zeng wrote:
>     > Hi Joel, Chris and all,
>     >
>     > Other than this project, I also have some ideas as below, just
>     what I
>     > could think of while trying to understand this project, it may be
>     > wrong or inappropriate for RTEMS,  anyway, your any comments
>     would be
>     > highly appreciated.
>
>     Attached is an example of using the GNU ld --wrap argument to wrap all
>     calls to malloc.
>
>     I wrote a program which could be provided a list of function
>     prototypes and
>     produce wrapper functions similar to the one shown in the attached
>     code.
>     But it would put all the arguments along with a event type
>     indicator in
>     a buffer
>     and pass that all to the capture engine.
>
>
> [Alan] What is the event type indicator here? Current capture engine 
> provide specific handler for each event. Now to integrate to capture 
> engine from ALL the wrapper function, it would have SOLE handler in 
> capture engine, is that right? Then besides all the arguments could be 
> passed into
That is still TBD.  It could be a "class" indicator byte followed by an 
class specific
event.  Something like:

+ class
+ class specific message indicator
+ size of data following
+ data

Then the SOLE capture engine is just moving data which is decoded on the
host side.  Each "class" could provide a decode routine.
> capture engine, what kind of event type indicator could be passed 
> along here?
>
>     Chris was sure he could take the same list of function prototypes
>     and auto
>     generate python code to decode the trace log.
>
>
> [Alan] For the "decode" here, do you mean the function name to be 
> traced had already been encoded to something?
>
See above.
>
>     >
>     > 1.  For the log generated from run-time trace, the capture
>     engine code
>     > only has Thread_Control as input, if we had another parameter there,
>     > that could make it possible for RTEMS application to add customized
>     > info into the log. For example, if the run-time trace is used to
>     trace
>     > the phone call usage, it may be required to have user id info
>     included
>     > into the log.
>     >
>
>     Agreed.  Chris and I discussed passing a buffer along with the
>     event type.
>
>     > 2. I guess, the run-time trace is mainly for debug purpose since it
>     > impact the performance anyway, especially in case high traffic. Is
>     > there any measurement available for specific characteristic? For
>     > example, user may be interested to know average CPU utilization
>     in the
>     > past 5 minutes, 30 minutes, and 24 hours.
>
>     Exactly.  It would indeed add overhead -- both CPU and precious
>     communications
>     bandwidth.  The user would have to have the capability to filter the
>     events logged.
>     I recall Chris and I identifying two points:
>
>     + methods actually wrapped.  If it isn't wrapped, this this executable
>     won't be
>     able to trace that method.
>     + A boolean expression filter in the capture engine to let logging
>     happen but say that
>       you only want events from a particular task.
>
>     RTEMS keeps cpu utilization statistics but there would be nothing
>     wrong
>     with snapshotting
>     this and having a log message for it.  But remember, you could derive
>     this information
>     from the constext switch traces in the logging information.
>
>
> [Alan]  Yes, the CPU utilization could be derived from context switch 
> traces. But how about memory utilization? And, how about if user is 
> interested to know what is the usage for specific semaphore?
RTEMS is very different from GNU/Linux or *BSD.  Our memory usage for OS 
objects is
VERY VERY predictable with (by default) hard limits on the number created.

So the memory used by a semaphore is sizeof a struct.
>
>     All RTEMS systems do not have filesystems.  Most will not have any
>     type
>     of permanent
>     storage at all to write data into.  They will have to use some type of
>     communications
>     mechanism like TCP/IP to get the data off board dynamically.  The
>     communication
>     mechanism may be unusual like CanBUS or something else.  This is a
>     deeply
>     embedded system. :-D
>
>
> [Alan] Understood. Thanks for the detailed explanation.
>
Hopefully this helps you write this up.

>     --
>     Joel Sherrill, Ph.D.             Director of Research & Development
>     joel.sherrill at OARcorp.com
>     <mailto:joel.sherrill at OARcorp.com>        On-Line Applications
>     Research
>     Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>        Support Available             (256) 722-9985
>
>
>
>


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985





More information about the users mailing list