-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stack traces are disconnected when using resumable tasks #384
Comments
Igprof captures on these system calls to sample call stack and libunwind to find the corresponding function calls. |
Before the switch to Igprof reported the cumulative cpu usage correctly in CMSSW_11_3_0_pre4 when counting from After the switch the resumable tasks Igprof reported the cumulative cpu usage incorrectly in CMSSW_11_3_0_pre5 Notice the cumulative cpu usage for CMSSW_11_3_0_pre4 was ~8000s while the cumulative cpu usage for CMSSW_11_3_0_pre5 was ~130s. |
From the comment in the igprof code it seems that igprof does not count the time in clone(). |
I suppose that resumable tasks involving stack manipulation with |
It appears that when the coroutine is created the parent context is not saved |
In the example, |
Igprof does not handle the context swapping with the coroutines correctly. Google perftools profiler library produces output that correctly accounts for the context swapping. |
When the coroutine is create the parent link is set to 0 |
Since CMSSW moved to using resumable tasks the results of cpu usage with our profiler Igprof have been incorrect. The reported cpu usage is on the order of 10% of the actual cpu usage. Perf was also tried but the cumulative cpu usage for functions did not add up. Profiling was also done with vtune. While vtune correctly accounts for the total cpu usage, the top down view show a majority of the cpu usage as
Skipped stack frame
.The text was updated successfully, but these errors were encountered: