Embedded multi-thread and multi-processor C profiling [message #127922] |
Fri, 04 April 2008 07:46  |
Eclipse User |
|
|
|
I am just starting work on a project where we will want to provide profiling
for a range of hetrogenous multiprocessor embedded system (programmed in C),
and trying to work out whether TPTP profiling can help with this. I have a
couple of initial questions:
1. I have seen a couple of references in this news group to the trace format
being extendable to C profiling; but I can't find a C profiler in Eclipse.
Has anybody done anything to create a C profiler using TPTP? If not, is
anybody planning to do so?
2. If there is no current C profiler, has anybody thought in detail about
how the trace format should be extended to support C profiling?
2. What assumptions does the thread profiling make about the target's
threading model? How easy would it be to add a new threading model?
- Anthony
|
|
|
|
|
Re: Embedded multi-thread and multi-processor C profiling [message #128698 is a reply to message #128459] |
Mon, 21 April 2008 03:45   |
Eclipse User |
|
|
|
Kate,
Thanks for the clarifications.
>
> What we'd like to do is build tools to profile applications which aren't
> written in Java (they're written in C in this case) running on top of a
> custom threading library, and would very much like to avoid reinventing
> too many wheels. TPTP seems like a good place for us to build on top
> of, but we're not sure at what level to start building.
>
> Apologies if this is a well documented process, I'm still wading through
> lots of documentation. Pointers as to which M to RTFM would be as
> useful as direct answers!
The TPTP documentation for "adopters" (i.e. developers building software
using the TPTP framework) is indeed vague on not well organized. The
TPTP web site contains some high-level documents that describe the
architecture (see here:
http://www.eclipse.org/tptp/home/documents/committers.php,
http://www.eclipse.org/tptp/platform/documents/index.php)
Currently, TPTP provides profilers (or data collectors) only for Java.
Therefore, it seems that what you need is to develop your own "thread
data collector" for C/C++. Such collectors communicate with the rest of
the TPTP framework through the Agent Controller. You should probably
concentrate your effort on learning how to write a TPTP data collector
agent with the Agent Controller SDK (can be downloaded from the TPTP web
site).
I would also suggest to take a closer look at the existing Java Thread
Profiler (in
org.eclipse.tptp.platform.jvmti.runtime\src-native\src\Threa dProf) to
learn what types of events are collected and how they are sent to the
Agent Controller (in src-native\src\jpiagent). You may find that much of
the functionality in JPIAgent for formatting the XML data stream can be
reused.
Also, there is a detailed design document for the Thread Profiler here:
http://www.eclipse.org/tptp/groups/Architecture/documents/fe atures/hf_200320.html
Hope this helps. If you have any specific questions, let us know.
Regards,
Asaf
--
Asaf Yaffe
Eclipse TPTP Committer, JVMTI Profiler
|
|
|
|
Powered by
FUDForum. Page generated in 0.08142 seconds