• [VxW] Re: profiler on vxworks

    From bk.kilambi@gmail.com@21:1/5 to Howard Wang on Wed Mar 4 03:03:24 2020
    On Wednesday, March 3, 2004 at 10:24:58 AM UTC+5:30, Howard Wang wrote:
    Hi Sunil,

    I work for RTI and saw your message on comp.os.vxworks. Here're some answers. If you continue to have problems, please feel free to send
    your questions to support@rti.com.

    I think that your basic problem right now is related to symbols and how Tornado and the target interact. Or more specifically, the Tornado
    target server and the target interact.

    Through the console of a target, you can only access the symbols that
    are loaded on the target itself.

    Through the windsh, you get to access the symbols that the target server
    has loaded.

    Unless you have enabled target symbol table synchronization, both in the kernel that the target is running, as well as the target server that is started, any code loaded directly by the target will not be visible (symbol-wise) in the windsh...and vice versa, as in your case. If you
    want to be able to start your application from the console, you either
    have to load your code directly in the console, or turn on symbol table synchronization.

    ProfileScope also uses the target server inorder to convert addresses to symbol names. This means that, no matter how you load your code, the symbols must be stored by the target server. Using Tornado to download
    your application should ensure that the target server knows about your symbols. However, by default, the target server only stores the global symbols. You need to configure your target server to load All symbols before you start it. In addition, you probably will want to increase
    the target server memory cache (also from the configure dialog box) to
    be at least the size of your application image. Symbols take up alot of storage and the default of 1 MB isn't enough. Note, this only uses up
    host memory.

    Finally, you should make sure that sysMemTop and sysPhysMemTop returns a number that is consistant (equal to) your available RAM. ProfileScope
    uses this information to make sure it doesn't walk into never-never land
    if your memory is corrupt. Most BSP have these variables configured correctly. However, if you have a custom system and have added memory
    to the target without changing these variables in the BSP, then
    ProfileScope may throw out samples because they were found outside of
    what it considers existing memory. You can manually tell ProfileScope
    how much memory there is on the target using the View -> Configure
    dialog box of the ProfileScope GUI.

    If you run "ProfileShowStatus" in a windsh after you start ProfileScope,
    you should be able to see if samples are being thrown out due to
    addresses found outside of memory limits.

    Hope this helps,

    --Howard Wang
    RTI

    "sunil" <sunsuri@yahoo.com> wrote in message news:<abd8a4b8.0402272305.15ec9db3@posting.google.com>...
    Hi,

    I am using RTI profile scope which is coming bundled with tornado IDE.
    I am using Tornado 2.2.1 and vxworks 5.5.1. My intention is to
    visualize the time taken by a particular function running in the
    system, rather to measure the performance of the system when the
    function is being run. I found the tool capable of doing so, but I am having few problems as under:

    1. I tested it by running a simple function like
    timexN(printf,"hello\n") on the vxWorks console. Profile scope gave me
    a nice idea about the system performance at that point. It captured a
    full function trace being executed in the tShell context and time
    taken at each step/sub-function called.

    But when I am executing the same function on tornado windsh, I dont
    see anything getting registered on the profiler. I am not able to find
    out why?

    2. I am forced to invoke my application in tornado windsh as I don't
    see my application symbols on vxworks console.

    I start my system barely with vxworks kernel and the download the application through tornado IDE. I am spwanning a task under windsh
    using sp(main) where "main" is my application entry point.

    Running sp(main) on vxworks console complains about main, saying
    "symbol not found". However, it executes fine when I do it from
    windsh. But as I said above, I don't see anything on the profile
    scope, for anything running under windsh.

    I am expecting to see the newly created appliaction task "t1" to be
    showing up in the profiler with all the function trace executed as I
    saw it for case 1. above.

    Has anybody used this tool and can give me some useful comments plz.

    Moreover, if you think some better way to profile under this type of scenario. I thought using the profile scope is the good way to analyze
    the system in real live fashion.

    Also, let me mention the problem I am trying to solve. I found the application takes exorbiantly high time ~ 5-7 minutes to download some application tables into the system and parse them. I have the parser
    in the application. It seems this is the place where most of the time
    is being consumed. So using profile scope my intention is to nail down
    to a particluar piece inside the parser, and/or find any other factor amounting to this time. The "main" entry point mentioned above does
    nothing but tftps the application tables from the host and
    parses/loads them into the system.

    Thanks for your time.

    SS



    Hi Sunil,
    How did you make the ProfileScope work with VxWorks? I am interested in finding out hotspots in my application code and would like to know how can i do that. I know perf, valgrind, oprofile are all linux based tools. How did you manage to integrate
    ProfileScope with VxWorks?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)