Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4994 Discussions

CallGraph activity finish before application

poncos
Beginner
529 Views

Hello,

I'm trying collect data with a CallGraph activity, but once I start the collect only a few seconds after, the collect process finish (the invoked application continue running).

The application that I want analyze is an application server, and my intention is that I can execute several client invocations while CallGraph activity is monitoring, but I don't have time to execute these test before callgraph activity finish.

In CallGraph Activity configuration dialog, I have selected as "Activity Duration" "no time limit", I also have tried a fixed value as 300 seconds.

Any ideas about what it's failing????, thanks.

0 Kudos
1 Solution
Vladimir_T_Intel
Moderator
529 Views
Quoting - poncos

Hello Vladimir, thanks for your response,

My problem is that I want monitorize an C++ application server, for example we can imaging that the binary executable is called "appServer", this appServer make the usually action to wait for client connections forever (it never finish), then, i want monitorize the application server during a client invocation.

Then, I create a new CallGraph Activity:

- 1: I select Linux executable (Applicaton or script)

- 2: I fill the Configuration wizard's parameters:

Application to launch: /path/to/application/appServer

Application arguments: arguments required for my application

Working directory: /path/to/application

Modules of interest: /path/to/application/appServer

- click finish and start activity

In this moment, the callgraph activity begin to running, start the appSever application (I view the process on the system) but on a fre seconds, the activity finish the data collection process without the application finish, in fact I continue viewing the appSever process on the system, because it continue running, but data collection have finished.

These are the main vtune's log data, where it is showed that the collect data start and finished in a moment:

Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.
Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.

.....

Fri Sep 4 11:54:53 2009 Static instrumentation done
Fri Sep 4 11:54:53 2009 Data collection started...

....

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", started writing Call Graph data.

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", finished writing Call Graph data.

Fri Sep 4 11:54:59 2009 Data collection finished...
Fri Sep 4 11:54:59 2009 Updating Call graph database...

.....

Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).

Any idea?, thanks!!


Thanks for clarification.

Here are my thoughts regarding the problem.

1. Make sure the appServer does not fork new appServer process while terminating the original one. So the starting PID should be the same to PID of the process after Call Graph completed the collection.

2. Make sure the appServer does not change uid during execution (it's not supported by Call Graph instrumentation engine)

3. It might be not necessarily connected to collection completion, but you'd better not strip symbols of compiled modules of the application. If modules are stripped, you do not see the functions' names in the profile.

Pls, let me know the results.

View solution in original post

0 Kudos
5 Replies
Vladimir_T_Intel
Moderator
529 Views
Quoting - poncos

I'm trying collect data with a CallGraph activity, but once I start the collect only a few seconds after, the collect process finish (the invoked application continue running).

What do you exactly mean by that? Please, describe in more details how you start profiling activty and what application processes are ivolved.

Just a note for your consideration: Call Graph is attached to a particular module/process and will track all the processes invoked. However, if the initial process is complete, Call Graph ends the collection.
Another reason for closing Call Graph collection could be TerminateProcess() or TerminateThread() calls in the program. All the processes and threads should complete in a normal way (main/thread function exit).
0 Kudos
poncos
Beginner
529 Views
What do you exactly mean by that? Please, describe in more details how you start profiling activty and what application processes are ivolved.

Just a note for your consideration: Call Graph is attached to a particular module/process and will track all the processes invoked. However, if the initial process is complete, Call Graph ends the collection.
Another reason for closing Call Graph collection could be TerminateProcess() or TerminateThread() calls in the program. All the processes and threads should complete in a normal way (main/thread function exit).

Hello Vladimir, thanks for your response,

My problem is that I want monitorize an C++ application server, for example we can imaging that the binary executable is called "appServer", this appServer make the usually action to wait for client connections forever (it never finish), then, i want monitorize the application server during a client invocation.

Then, I create a new CallGraph Activity:

- 1: I select Linux executable (Applicaton or script)

- 2: I fill the Configuration wizard's parameters:

Application to launch: /path/to/application/appServer

Application arguments: arguments required for my application

Working directory: /path/to/application

Modules of interest: /path/to/application/appServer

- click finish and start activity

In this moment, the callgraph activity begin to running, start the appSever application (I view the process on the system) but on a fre seconds, the activity finish the data collection process without the application finish, in fact I continue viewing the appSever process on the system, because it continue running, but data collection have finished.

These are the main vtune's log data, where it is showed that the collect data start and finished in a moment:

Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.
Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.

.....

Fri Sep 4 11:54:53 2009 Static instrumentation done
Fri Sep 4 11:54:53 2009 Data collection started...

....

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", started writing Call Graph data.

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", finished writing Call Graph data.

Fri Sep 4 11:54:59 2009 Data collection finished...
Fri Sep 4 11:54:59 2009 Updating Call graph database...

.....

Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).

Any idea?, thanks!!

0 Kudos
Vladimir_T_Intel
Moderator
530 Views
Quoting - poncos

Hello Vladimir, thanks for your response,

My problem is that I want monitorize an C++ application server, for example we can imaging that the binary executable is called "appServer", this appServer make the usually action to wait for client connections forever (it never finish), then, i want monitorize the application server during a client invocation.

Then, I create a new CallGraph Activity:

- 1: I select Linux executable (Applicaton or script)

- 2: I fill the Configuration wizard's parameters:

Application to launch: /path/to/application/appServer

Application arguments: arguments required for my application

Working directory: /path/to/application

Modules of interest: /path/to/application/appServer

- click finish and start activity

In this moment, the callgraph activity begin to running, start the appSever application (I view the process on the system) but on a fre seconds, the activity finish the data collection process without the application finish, in fact I continue viewing the appSever process on the system, because it continue running, but data collection have finished.

These are the main vtune's log data, where it is showed that the collect data start and finished in a moment:

Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.
Fri Sep 4 11:54:52 2009 Reading property files started...

Fri Sep 4 11:54:52 2009 Reading property files done.

Fri Sep 4 11:54:52 2009 Static instrumentation started
Fri Sep 4 11:54:52 2009 Minimal instrumentation of module "appServer" was successful.

.....

Fri Sep 4 11:54:53 2009 Static instrumentation done
Fri Sep 4 11:54:53 2009 Data collection started...

....

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", started writing Call Graph data.

Fri Sep 4 11:54:54 2009 Process Call Graph (MT) Data Collection, id "10779", finished writing Call Graph data.

Fri Sep 4 11:54:59 2009 Data collection finished...
Fri Sep 4 11:54:59 2009 Updating Call graph database...

.....

Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).Fri Sep 4 12:04:56 2009 Warning for module "appServer" - The module is stripped (Instrumentation degraded to MINIMAL).

Any idea?, thanks!!


Thanks for clarification.

Here are my thoughts regarding the problem.

1. Make sure the appServer does not fork new appServer process while terminating the original one. So the starting PID should be the same to PID of the process after Call Graph completed the collection.

2. Make sure the appServer does not change uid during execution (it's not supported by Call Graph instrumentation engine)

3. It might be not necessarily connected to collection completion, but you'd better not strip symbols of compiled modules of the application. If modules are stripped, you do not see the functions' names in the profile.

Pls, let me know the results.

0 Kudos
poncos
Beginner
529 Views

Thanks for clarification.

Here are my thoughts regarding the problem.

1. Make sure the appServer does not fork new appServer process while terminating the original one. So the starting PID should be the same to PID of the process after Call Graph completed the collection.

2. Make sure the appServer does not change uid during execution (it's not supported by Call Graph instrumentation engine)

3. It might be not necessarily connected to collection completion, but you'd better not strip symbols of compiled modules of the application. If modules are stripped, you do not see the functions' names in the profile.

Pls, let me know the results.

Hello vladimir, thank you very much for your help,

As you have told, the problem was that my application create a new proccess invoking the "fork" function and the main process finish. Once that I knew this, I executed the application without this feature and the Vtune work perfectly.

Thank you very much.

0 Kudos
Vladimir_T_Intel
Moderator
529 Views
Quoting - poncos

Hello vladimir, thank you very much for your help,

As you have told, the problem was that my application create a new proccess invoking the "fork" function and the main process finish. Once that I knew this, I executed the application without this feature and the Vtune work perfectly.

Thank you very much.


Hello,

It's nice to know that it helped. Thanks for letting me know.
0 Kudos
Reply