Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(6503)

Issue 277280043: i#359 -prof_pcs asserts: support multi-threading and long JIT runs

Can't Edit
Can't Publish+Mail
Start Review
Created:
8 years, 4 months ago by Byron
Modified:
8 years, 4 months ago
Reviewers:
bruening
CC:
dynamorio-devs_googlegroups.com
Visibility:
Public.

Description

Commit log for first patchset: --------------- i#359 -prof_pcs asserts: support multi-threading and long JIT runs Releases the shared_itimer lock early for ITIMER_VIRTUAL so the profiler can acquire other locks while collecting data. Adds an option to specify the profiler's special heap size for targets that generate unusually large numbers of unique sample pcs. Adds a test for -prof_pcs with a multi-threaded target. Fixes #359 ---------------

Patch Set 1 #

Total comments: 7

Patch Set 2 : Committed #

Unified diffs Side-by-side diffs Delta from patch set Stats (+262 lines, -14 lines) Patch
M core/heap.h View 1 chunk +4 lines, -0 lines 0 comments Download
M core/heap.c View 1 1 chunk +32 lines, -0 lines 0 comments Download
M core/optionsx.h View 1 chunk +3 lines, -0 lines 0 comments Download
M core/unix/pcprofile.c View 4 chunks +12 lines, -4 lines 0 comments Download
M core/unix/signal.c View 3 chunks +19 lines, -10 lines 0 comments Download
M suite/tests/CMakeLists.txt View 1 1 chunk +10 lines, -0 lines 0 comments Download
A suite/tests/client-interface/annotation-concurrency.prof-pcs.templatex View 1 chunk +182 lines, -0 lines 0 comments Download

Messages

Total messages: 5
Byron
8 years, 4 months ago (2015-12-09 22:51:06 UTC) #1
Byron
https://codereview.appspot.com/277280043/diff/1/core/unix/signal.c File core/unix/signal.c (right): https://codereview.appspot.com/277280043/diff/1/core/unix/signal.c#newcode5750 core/unix/signal.c:5750: if (which == ITIMER_VIRTUAL && info->shared_itimer && should_release_lock) { ...
8 years, 4 months ago (2015-12-09 22:54:27 UTC) #2
bruening
LGTM w/ comment https://codereview.appspot.com/277280043/diff/1/core/heap.c File core/heap.c (right): https://codereview.appspot.com/277280043/diff/1/core/heap.c#newcode4522 core/heap.c:4522: bool special_heap_can_calloc(void *special, uint num) style ...
8 years, 4 months ago (2015-12-10 04:53:18 UTC) #3
Byron
Committed as https://github.com/DynamoRIO/dynamorio/commit/2683ba52ba95babfb678ff492b994eca72f1a392 Final commit log: --------------- i#359 -prof_pcs asserts: support multi-threading and long JIT ...
8 years, 4 months ago (2015-12-10 08:37:55 UTC) #4
Byron
8 years, 4 months ago (2015-12-10 08:40:38 UTC) #5
https://codereview.appspot.com/277280043/diff/1/core/heap.c
File core/heap.c (right):

https://codereview.appspot.com/277280043/diff/1/core/heap.c#newcode4522
core/heap.c:4522: bool special_heap_can_calloc(void *special, uint num)
On 2015/12/10 04:53:18, bruening wrote:
> style violation: bool own own line

Done.

https://codereview.appspot.com/277280043/diff/1/core/unix/signal.c
File core/unix/signal.c (right):

https://codereview.appspot.com/277280043/diff/1/core/unix/signal.c#newcode5750
core/unix/signal.c:5750: if (which == ITIMER_VIRTUAL && info->shared_itimer &&
should_release_lock) {
On 2015/12/10 04:53:18, bruening wrote:
> On 2015/12/09 22:54:27, Byron wrote:
> > Could the early lock release affect clients using ITIMER_VIRTUAL?
> 
> An alarm interrupting a thread making an itimer syscall: already murky and
> attempted to be handled above if can't get lock by continuing, so now we would
> just continue anyway.
> 
> An alarm interrupting a prior alarm's cb: similar.

Acknowledged.

https://codereview.appspot.com/277280043/diff/1/suite/tests/CMakeLists.txt
File suite/tests/CMakeLists.txt (right):

https://codereview.appspot.com/277280043/diff/1/suite/tests/CMakeLists.txt#ne...
suite/tests/CMakeLists.txt:1717: "annotation-concurrency.prof-pcs")
On 2015/12/10 04:53:18, bruening wrote:
> Is the output identical to existing tests?  If so can we avoid a new template
> file?

Unfortunately the output is very different because this is the only annotation
test instance without a client. When client+pcprof is fixed, we can remove the
added template.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b