RESOLVED FIXED 113144
JSC_enableProfiler=true should also cause JSGlobalData to save the profiler output somewhere
https://bugs.webkit.org/show_bug.cgi?id=113144
Summary JSC_enableProfiler=true should also cause JSGlobalData to save the profiler o...
Filip Pizlo
Reported 2013-03-23 19:55:51 PDT
It should save it in the current directory by default, but you should be able to set JSC_PROFILER_PATH to have it save it somewhere else.
Attachments
the patch (14.73 KB, patch)
2013-03-23 19:59 PDT, Filip Pizlo
no flags
the patch (14.70 KB, patch)
2013-03-23 20:03 PDT, Filip Pizlo
buildbot: commit-queue-
the patch (14.70 KB, patch)
2013-03-23 21:45 PDT, Filip Pizlo
buildbot: commit-queue-
the patch (14.74 KB, patch)
2013-03-24 07:42 PDT, Filip Pizlo
no flags
the patch (18.33 KB, patch)
2013-03-25 19:08 PDT, Filip Pizlo
ggaren: review+
buildbot: commit-queue-
Filip Pizlo
Comment 1 2013-03-23 19:59:46 PDT
Created attachment 194729 [details] the patch
Filip Pizlo
Comment 2 2013-03-23 20:03:31 PDT
Created attachment 194730 [details] the patch
Build Bot
Comment 3 2013-03-23 21:42:52 PDT
Filip Pizlo
Comment 4 2013-03-23 21:45:02 PDT
Created attachment 194736 [details] the patch Spell GetCurrentProcessId correctly this time.
Build Bot
Comment 5 2013-03-23 22:38:46 PDT
Filip Pizlo
Comment 6 2013-03-24 07:42:08 PDT
Created attachment 194751 [details] the patch another Win fix.
Filip Pizlo
Comment 7 2013-03-25 09:27:41 PDT
Comment on attachment 194751 [details] the patch Clearing r? because I need to add some horrible atexit hacks to make this practical. Apparently DRT doesn't delete it's JSGlobalData's.
Geoffrey Garen
Comment 8 2013-03-25 10:37:02 PDT
> Apparently DRT doesn't delete it's JSGlobalData's. This is really a WebKit issue: WebCore (intentionally) leaks its singleton JSGlobalData.
Filip Pizlo
Comment 9 2013-03-25 19:08:21 PDT
Created attachment 194977 [details] the patch Made the atexit() thing work.
Geoffrey Garen
Comment 10 2013-03-25 19:36:20 PDT
Comment on attachment 194977 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=194977&action=review r=me > Source/JavaScriptCore/profiler/ProfilerDatabase.cpp:37 > +static SpinLock registrationLock; Needs " = SPINLOCK_INITIALIZER;".
Filip Pizlo
Comment 11 2013-03-25 19:39:03 PDT
(In reply to comment #10) > (From update of attachment 194977 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=194977&action=review > > r=me > > > Source/JavaScriptCore/profiler/ProfilerDatabase.cpp:37 > > +static SpinLock registrationLock; > > Needs " = SPINLOCK_INITIALIZER;". Will do. But a question for future reference: isn't it true that on all platforms we care about, globals get initialized to all-zero? And if that's the case, and SPINLOCK_INITIALIZER is just { 0 }, then can't we just make things simpler and change SpinLock's contract to say that it guarantees that all-zero is a valid unlocked state and that we don't need " = SPINLOCK_INITIALIZER"?
Geoffrey Garen
Comment 12 2013-03-25 21:04:34 PDT
> But a question for future reference: isn't it true that on all platforms we care about, globals get initialized to all-zero? Yes. That's a part of the C/C++ ABI. > And if that's the case, and SPINLOCK_INITIALIZER is just { 0 } For !ENABLE(COMPARE_AND_SWAP) platforms, that's not the case: TCSpinLock.h:114: #define SPINLOCK_INITIALIZER { PTHREAD_MUTEX_INITIALIZER } pthread.h:#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}} pthread_impl.h:#define _PTHREAD_MUTEX_SIG_init 0x32AAABA7
Build Bot
Comment 13 2013-03-25 23:32:54 PDT
Filip Pizlo
Comment 14 2013-03-26 14:46:03 PDT
Note You need to log in before you can comment on or make changes to this bug.