Bug 76855

Summary: Implement a JIT-code aware sampling profiler for JSC
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: JavaScriptCoreAssignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal CC: dglazkov, efidler, fpizlo, ggaren, gustavo, mitz, rakuco, webkit.review.bot, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Pt2, generalize RedBlackTree
none
Ooops, revert unnecessary change to MetaAllocatorHandle
ggaren: review+
Add mechanism to MetaAllocator to allow allocations to be tracked.
oliver: review+
The profiler. Will probably require some PLATFORM(MAC) guards to make this compiler on non-OS X builds.
oliver: review+, webkit.review.bot: commit-queue-
Build fixes (patch already reviewed by oliver)
none
More build fixes (patch already reviewed by oliver)
webkit-ews: commit-queue-
More build fixes (patch already reviewed by oliver)
none
More build fixes (patch already reviewed by oliver)
gustavo: commit-queue-
More build fixes (patch already reviewed by oliver)
gustavo: commit-queue-
More build fixes (patch already reviewed by oliver)
none
More build fixes (patch already reviewed by oliver)
webkit-ews: commit-queue-
More build fixes (patch already reviewed by oliver)
gyuyoung.kim: commit-queue-
More build fixes (patch already reviewed by oliver) none

Description Gavin Barraclough 2012-01-23 13:04:58 PST
We should be able to implement an non-intrusive mechanism to sample activity, recording the current running codeblock, able to generate profiles showing statistical distribution of time between JITs, JS functions, etc.
Comment 1 Gavin Barraclough 2012-01-23 13:09:05 PST
Part 1 landed in r105636.
Comment 2 Gavin Barraclough 2012-01-23 15:02:36 PST
Created attachment 123631 [details]
Pt2, generalize RedBlackTree
Comment 3 Gavin Barraclough 2012-01-23 15:06:15 PST
Created attachment 123632 [details]
Ooops, revert unnecessary change to MetaAllocatorHandle
Comment 4 Geoffrey Garen 2012-01-23 15:10:43 PST
Comment on attachment 123632 [details]
Ooops, revert unnecessary change to MetaAllocatorHandle

View in context: https://bugs.webkit.org/attachment.cgi?id=123632&action=review

r=me

> Source/JavaScriptCore/ChangeLog:8
> +        Step 2: generalize RedBlackTree. The profiler is going to want tio use

Typo: tio.
Comment 5 Gavin Barraclough 2012-01-23 15:31:21 PST
pt 2 landed in r105646
Comment 6 Gavin Barraclough 2012-01-23 17:23:11 PST
Oooops, shouldn't have marked as fixed yet!
Also, build fix in r105666.
Comment 7 Gavin Barraclough 2012-01-24 17:00:32 PST
Created attachment 123845 [details]
Add mechanism to MetaAllocator to allow allocations to be tracked.
Comment 8 Gavin Barraclough 2012-01-27 15:10:08 PST
Created attachment 124378 [details]
The profiler.  Will probably require some PLATFORM(MAC) guards to make this compiler on non-OS X builds.
Comment 9 WebKit Review Bot 2012-01-27 15:13:33 PST
Attachment 124378 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1

Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 10 WebKit Review Bot 2012-01-27 15:13:42 PST
Comment on attachment 124378 [details]
The profiler.  Will probably require some PLATFORM(MAC) guards to make this compiler on non-OS X builds.

Attachment 124378 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11359180
Comment 11 Gyuyoung Kim 2012-01-27 15:55:01 PST
Comment on attachment 124378 [details]
The profiler.  Will probably require some PLATFORM(MAC) guards to make this compiler on non-OS X builds.

Attachment 124378 [details] did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11359190
Comment 12 Gavin Barraclough 2012-01-27 16:05:03 PST
Created attachment 124391 [details]
Build fixes (patch already reviewed by oliver)
Comment 13 WebKit Review Bot 2012-01-27 16:07:54 PST
Attachment 124391 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1

Source/JavaScriptCore/Target.pri:212:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/Target.pri:213:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/CMakeLists.txt:203:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/CMakeLists.txt:204:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 5 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 14 Gavin Barraclough 2012-01-27 16:36:15 PST
Created attachment 124398 [details]
More build fixes (patch already reviewed by oliver)
Comment 15 Early Warning System Bot 2012-01-27 17:09:01 PST
Comment on attachment 124398 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124398 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11359226
Comment 16 Gavin Barraclough 2012-01-27 17:11:37 PST
Created attachment 124403 [details]
More build fixes (patch already reviewed by oliver)
Comment 17 Gavin Barraclough 2012-01-27 17:14:04 PST
Created attachment 124404 [details]
More build fixes (patch already reviewed by oliver)
Comment 18 Gustavo Noronha (kov) 2012-01-27 17:35:18 PST
Comment on attachment 124404 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124404 [details] did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11359241
Comment 19 Early Warning System Bot 2012-01-27 17:42:46 PST
Comment on attachment 124404 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124404 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11358356
Comment 20 Gyuyoung Kim 2012-01-27 17:46:52 PST
Comment on attachment 124404 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124404 [details] did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11358358
Comment 21 Gavin Barraclough 2012-01-27 18:04:48 PST
Created attachment 124411 [details]
More build fixes (patch already reviewed by oliver)
Comment 22 Gustavo Noronha (kov) 2012-01-27 18:17:01 PST
Comment on attachment 124411 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124411 [details] did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11360226
Comment 23 Early Warning System Bot 2012-01-27 18:23:28 PST
Comment on attachment 124411 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124411 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11191933
Comment 24 Gavin Barraclough 2012-01-27 18:27:01 PST
Created attachment 124418 [details]
More build fixes (patch already reviewed by oliver)
Comment 25 Gavin Barraclough 2012-01-27 18:34:33 PST
Created attachment 124421 [details]
More build fixes (patch already reviewed by oliver)
Comment 26 Early Warning System Bot 2012-01-27 18:58:17 PST
Comment on attachment 124421 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124421 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11360243
Comment 27 Gavin Barraclough 2012-01-27 19:00:21 PST
Created attachment 124423 [details]
More build fixes (patch already reviewed by oliver)
Comment 28 Gyuyoung Kim 2012-01-27 19:26:52 PST
Comment on attachment 124423 [details]
More build fixes (patch already reviewed by oliver)

Attachment 124423 [details] did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11360246
Comment 29 Gavin Barraclough 2012-01-27 23:01:52 PST
Created attachment 124430 [details]
More build fixes (patch already reviewed by oliver)
Comment 30 Gavin Barraclough 2012-01-28 19:47:43 PST
Fixed in r106197
Comment 31 mitz 2012-01-29 09:33:48 PST
(In reply to comment #30)
> Fixed in r106197

This broke the TestWebKitAPI build: <http://build.webkit.org/builders/Lion%20Intel%20Debug%20%28Tests%29/builds/3058/steps/run-api-tests/logs/stdio/text>.
Comment 32 Gavin Barraclough 2012-01-30 11:27:09 PST
build fix in r106264.
Comment 33 Gavin Barraclough 2012-01-30 12:38:50 PST
Interpreter build fixed in r106276