Improve the profiler's category annotations

RESOLVED FIXED in Firefox 62

Status

()

enhancement
P1
normal
RESOLVED FIXED
Last year
Last year

People

(Reporter: mstange, Assigned: mstange)

Tracking

(Blocks 1 bug)

Trunk
mozilla62
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox62 fixed)

Details

Attachments

(20 attachments, 1 obsolete attachment)

59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
59 bytes, text/x-review-board-request
spohl
: review+
Details
59 bytes, text/x-review-board-request
njn
: review+
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
906.61 KB, image/png
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
59 bytes, text/x-review-board-request
froydnj
: review+
Details
59 bytes, text/x-review-board-request
gregtatum
: review+
Details
345.44 KB, image/png
Details
ProfilingStackFrames have a category field, but that field is currently only being used by the old devtools performance panel which is on its way out.

We'd like to make use of category information in perf.html but it's a bit lacking, for three reasons:
 - There is no "Idle" category.
 - The set of categories is a bit awkward - GC and CC are two different categories, the name "CSS" is used for what we usually call "Layout" in gecko, and "STORAGE" has its own category even though the main thread usually doesn't spend any time in IndexedDB code.
 - The set of categories is hardcoded and needs to be kept in sync between multiple different places.

I'd like to make the following changes in this bug:
 - Make the category enum not be a bitfield any more. We never need to have multiple categories on a single stack frame, so category enum values really don't need to be bit-disjoint.
 - Consolidate the set of categories and add an "Idle" category.
 - Include the list of categories in the profile JSON, so that we don't need to keep the profile consumers in sync with Gecko in the future when it comes to categories.
 - Sprinkle more profiler stack labels with categories over the code base.
 - Update the old devtools performance panel for these changes.
I'm curious how the work in bug 1420437 (which Randell is going to work on next) impacts this. Do you think that information would add more value to a STORAGE category?
Priority: -- → P1
Thanks for the pointer to that bug. We can add a new category called DISKIO for it.
Here's a screenshot that demonstrates the kind of visualization that can be created with the data from these categories.
Comment on attachment 8977381 [details]
Bug 1462784 - Change the enum ProfilingStackFrame::Category from a bitfield to a regular enum.

https://reviewboard.mozilla.org/r/245216/#review251284
Attachment #8977381 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977382 [details]
Bug 1462784 - Merge GC and CC categories into one category.

https://reviewboard.mozilla.org/r/245218/#review251286

I'm not totally convinced this is a good idea, but I'll give you the benefit of the doubt.
Attachment #8977382 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977383 [details]
Bug 1462784 - Remove EVENTS category.

https://reviewboard.mozilla.org/r/245220/#review251288
Attachment #8977383 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977384 [details]
Bug 1462784 - Rename the CSS category to LAYOUT.

https://reviewboard.mozilla.org/r/245222/#review251290
Attachment #8977384 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977385 [details]
Bug 1462784 - Annotate layout-related stacks with the LAYOUT category instead of the GRAPHICS category.

https://reviewboard.mozilla.org/r/245224/#review251292
Attachment #8977385 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977386 [details]
Bug 1462784 - Add a DOM category and use it for the WebIDL binding stack labels.

https://reviewboard.mozilla.org/r/245226/#review251294
Attachment #8977386 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977387 [details]
Bug 1462784 - Remove the STORAGE category.

https://reviewboard.mozilla.org/r/245228/#review251296
Attachment #8977387 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977388 [details]
Bug 1462784 - Relabel various other stuff as being OTHER.

https://reviewboard.mozilla.org/r/245230/#review251298
Attachment #8977388 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977389 [details]
Bug 1462784 - Add an IDLE category.

https://reviewboard.mozilla.org/r/245232/#review251300
Attachment #8977389 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977393 [details]
Bug 1462784 - Add the list of categories into the profile JSON and bump the version to 11.

https://reviewboard.mozilla.org/r/245240/#review251302
Attachment #8977393 - Flags: review?(n.nethercote) → review+
Comment on attachment 8977390 [details]
Bug 1462784 - Annotate idle stacks in the chromium event loop.

https://reviewboard.mozilla.org/r/245234/#review251432

Is this going to make it so in the profiler it doesn't look like otherwise idle threads are consuming 100% of CPU time, because the profiler can present the information more intelligently?  I have seen (non-Gecko engineers) concerned that threads are spending so much time waiting in event loops before...
Attachment #8977390 - Flags: review?(nfroyd) → review+
Comment on attachment 8977395 [details]
Bug 1462784 - Annotate idle stacks in the native event loop on Linux.

https://reviewboard.mozilla.org/r/245244/#review251436
Attachment #8977395 - Flags: review?(nfroyd) → review+
Comment on attachment 8977394 [details]
Bug 1462784 - Annotate idle stacks in the native event loop on Windows.

https://reviewboard.mozilla.org/r/245242/#review251438
Attachment #8977394 - Flags: review?(nfroyd) → review+
Comment on attachment 8977391 [details]
Bug 1462784 - Annotate idle stacks in the main thread event loop.

https://reviewboard.mozilla.org/r/245236/#review251442

Have you tested profiles to see if things look reasonable with the nsThread change?
Attachment #8977391 - Flags: review?(nfroyd) → review+
Comment on attachment 8977392 [details]
Bug 1462784 - Annotate idle stacks in the native event loop on macOS.

https://reviewboard.mozilla.org/r/245238/#review251444

I think the `nextEventMatchingMask` label is correct, but I am very unsure about the other two.  Is there someone else (spohl, I think?) who can review this patch?

::: widget/cocoa/nsAppShell.mm:134
(Diff revision 1)
>  
>  @implementation GeckoNSApplication
>  
>  - (void)sendEvent:(NSEvent *)anEvent
>  {
> +  AUTO_PROFILER_LABEL("-[GeckoNSApplication sendEvent:]", OTHER);

I don't know enough about the Mac event loop to say whether this label is useful or not; is `sendEvent` synchronous in some way?

::: widget/cocoa/nsAppShell.mm:704
(Diff revision 1)
> +  AUTO_PROFILER_LABEL("nsAppShell::Run", IDLE);
> +

I don't think this one is actually useful/doing anything, because we enter `Run()` at the toplevel of the event loop.  What was the rationale for adding something here?
Attachment #8977392 - Flags: review?(nfroyd)
(In reply to Nicholas Nethercote [:njn] from comment #20)
> Comment on attachment 8977382 [details]
> Bug 1462784 - Merge GC and CC categories into one category.
> 
> https://reviewboard.mozilla.org/r/245218/#review251286
> 
> I'm not totally convinced this is a good idea, but I'll give you the benefit
> of the doubt.

I'm not 100% sure yet either, I guess we'll try and and see. One of the goals with this bug is to make it cheaper to tweak these categories in the future.

That said, I recently found out that the old performance devtool, which is currently the only user of these categories, also combines GC and CC into one displayed category:
https://searchfox.org/mozilla-central/rev/9769f2300a17d3dfbebcfb457b1244bd624275e3/devtools/client/performance/modules/categories.js#62,64
It takes a full page of rather generic code to do this, and it took me quite a while to understand it. I think this is also the reason why the categories used to be laid out as a bitfield.
(In reply to Nathan Froyd [:froydnj] from comment #29)
> Comment on attachment 8977390 [details]
> Bug 1462784 - Annotate idle stacks in the chromium event loop.
> 
> https://reviewboard.mozilla.org/r/245234/#review251432
> 
> Is this going to make it so in the profiler it doesn't look like otherwise
> idle threads are consuming 100% of CPU time, because the profiler can
> present the information more intelligently?  I have seen (non-Gecko
> engineers) concerned that threads are spending so much time waiting in event
> loops before...

Yes, that's the goal.

(In reply to Nathan Froyd [:froydnj] from comment #32)
> Comment on attachment 8977391 [details]
> Bug 1462784 - Annotate idle stacks in the main thread event loop.
> 
> https://reviewboard.mozilla.org/r/245236/#review251442
> 
> Have you tested profiles to see if things look reasonable with the nsThread
> change?

(In reply to Nathan Froyd [:froydnj] from comment #33)
> Comment on attachment 8977392 [details]
> Bug 1462784 - Annotate idle stacks in the native event loop on macOS.
> 
> https://reviewboard.mozilla.org/r/245238/#review251444
> 
> I think the `nextEventMatchingMask` label is correct, but I am very unsure
> about the other two.  Is there someone else (spohl, I think?) who can review
> this patch?

I'll ask spohl for review on the updated patch.

> ::: widget/cocoa/nsAppShell.mm:134
> (Diff revision 1)
> >  
> >  @implementation GeckoNSApplication
> >  
> >  - (void)sendEvent:(NSEvent *)anEvent
> >  {
> > +  AUTO_PROFILER_LABEL("-[GeckoNSApplication sendEvent:]", OTHER);
> 
> I don't know enough about the Mac event loop to say whether this label is
> useful or not; is `sendEvent` synchronous in some way?

Yes it is - this function is on the way from the native event loop to our event handlers e.g. in nsChildView.

> ::: widget/cocoa/nsAppShell.mm:704
> (Diff revision 1)
> > +  AUTO_PROFILER_LABEL("nsAppShell::Run", IDLE);
> > +
> 
> I don't think this one is actually useful/doing anything, because we enter
> `Run()` at the toplevel of the event loop.  What was the rationale for
> adding something here?

You're right, I've removed this instance.
(In reply to Nathan Froyd [:froydnj] from comment #32)
> Comment on attachment 8977391 [details]
> Bug 1462784 - Annotate idle stacks in the main thread event loop.
> 
> https://reviewboard.mozilla.org/r/245236/#review251442
> 
> Have you tested profiles to see if things look reasonable with the nsThread
> change?

Which nsThread change are you referring to? Do you mean the change that this patch makes to ThreadEventQueue<InnerQueueT>::GetEvent?
Comment on attachment 8977392 [details]
Bug 1462784 - Annotate idle stacks in the native event loop on macOS.

https://reviewboard.mozilla.org/r/245238/#review252608

lgtm, thanks!
Attachment #8977392 - Flags: review?(spohl.mozilla.bugs) → review+
Comment on attachment 8980164 [details]
Bug 1462784 - Add idle annotations for DOM worker threads.

https://reviewboard.mozilla.org/r/246316/#review252610
Attachment #8980164 - Flags: review?(nfroyd) → review+
Comment on attachment 8980165 [details]
Bug 1462784 - Annotate idle stacks in nsThreadPool.

https://reviewboard.mozilla.org/r/246318/#review252612

To be clear, the below is not a requirement for this patch series, or even a followup bug.  But given that `CondVar::Wait` already knows about `AUTO_PROFILER_THREAD_SLEEP`, maybe it makes sense to move more profiler-related stuff there?  Or to make sleeping automatically label things as `IDLE`?  Or something else?

::: xpcom/threads/nsThreadPool.cpp:216
(Diff revision 2)
>            if (wasIdle) {
>              --mIdleCount;
>            }
>            shutdownThreadOnExit = mThreads.RemoveObject(current);
>          } else {
> +          AUTO_PROFILER_LABEL("nsThreadPool::Run::Wait", IDLE);

I think this is reasonable.  I wonder whether it makes sense to provide something like:

```
// Or template these to ensure people provide string constants...
ProfilerWait(const char*);
ProfilerWait(const char*, TimeDuration);
```

as `CondVar` methods, so then the `AUTO_PROFILER_LABEL` bits could be moved into that.  WDYT?
Attachment #8980165 - Flags: review?(nfroyd) → review+
Comment on attachment 8980166 [details]
Bug 1462784 - Update the devtools performance panel for the new category list.

https://reviewboard.mozilla.org/r/246320/#review253080

It looks like this breaks the tool for any older saved profiles. Loading in a previously saved JSON file from the devtools causes the call tree to be incorrect. I think we're going to need some migration code for upgrading older profiles. Otherwise the rest of the code looks fine, and it seems to map the categories correctly.
Attachment #8980166 - Flags: review?(gtatum) → review-
Good catch. I've added another patch on top that fixes that case.

I looked for a good place to do the conversion but couldn't find one. Simply treating all unknown categories as "other" (which will be displayed as "Gecko") is a lot simpler and works well enough in my opinion, so I did that instead.
Falling back to the other / "Gecko" category can cause some identical category nodes to be displayed in the simplified call tree view. This happens because the frameKey is still based on the integer category value. This isn't perfect either but it really only happens when opening old profiles. Let me know if you think this is worth fixing.
Blocks: 1464909
I'm still getting some errors in the JS Flame Graph when loading a profile imported from before the change. The Waterfall and JS Flame chart seem to work fine.


> CATEGORIES[frameKey] is undefined[Learn More] FlameGraph.js:1295:13

https://searchfox.org/mozilla-central/rev/5a744713370ec47969595e369fd5125f123e6d24/devtools/client/shared/widgets/FlameGraph.js#1295

> TypeError: dataSource is undefined[Learn More] FlameGraph.js:667:1

https://searchfox.org/mozilla-central/rev/5a744713370ec47969595e369fd5125f123e6d24/devtools/client/shared/widgets/FlameGraph.js#667
Attachment #8980166 - Attachment is obsolete: true
Comment on attachment 8981200 [details]
Bug 1462784 - Update the devtools performance panel for the new category list.

https://reviewboard.mozilla.org/r/247284/#review254536

I think we're good to go now! Thanks for fixing it up for older profiles.
Attachment #8981200 - Flags: review?(gtatum) → review+
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/52ed9a039ad2
Change the enum ProfilingStackFrame::Category from a bitfield to a regular enum. r=njn
https://hg.mozilla.org/integration/autoland/rev/8a06c0ba42f7
Merge GC and CC categories into one category. r=njn
https://hg.mozilla.org/integration/autoland/rev/ea05ff70a51d
Remove EVENTS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/2ac65d100fa2
Rename the CSS category to LAYOUT. r=njn
https://hg.mozilla.org/integration/autoland/rev/cd39588aece4
Annotate layout-related stacks with the LAYOUT category instead of the GRAPHICS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/e670f156a603
Add a DOM category and use it for the WebIDL binding stack labels. r=njn
https://hg.mozilla.org/integration/autoland/rev/036e6f64e224
Remove the STORAGE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/8f06963c7c6f
Relabel various other stuff as being OTHER. r=njn
https://hg.mozilla.org/integration/autoland/rev/2faf787fbbdf
Add an IDLE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/3901070e2e60
Annotate idle stacks in the chromium event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/4055eb6c3bc6
Annotate idle stacks in the main thread event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/268a72b7c3c4
Annotate idle stacks in the native event loop on macOS. r=spohl
https://hg.mozilla.org/integration/autoland/rev/2fe10732076c
Annotate idle stacks in the native event loop on Windows. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/ad3802ffb780
Annotate idle stacks in the native event loop on Linux. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/8c8d30fa406c
Add idle annotations for DOM worker threads. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/cde492240e99
Annotate idle stacks in nsThreadPool. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/c8192175f360
Add the list of categories into the profile JSON and bump the version to 11. r=njn
https://hg.mozilla.org/integration/autoland/rev/a74d36598442
Update the devtools performance panel for the new category list. r=gregtatum
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s a3037f25e8f3e6248fcb508cc58107659d0189e7 -d 1fbf7e0d341d: rebasing 466478:a3037f25e8f3 "Bug 1462784 - Change the enum ProfilingStackFrame::Category from a bitfield to a regular enum. r=njn"
merging js/public/ProfilingStack.h
rebasing 466479:f172424042fa "Bug 1462784 - Merge GC and CC categories into one category. r=njn"
merging dom/base/nsDOMWindowUtils.cpp
merging dom/base/nsJSEnvironment.cpp
merging js/public/ProfilingStack.h
merging js/src/gc/GC.cpp
merging xpcom/base/nsCycleCollector.cpp
rebasing 466480:34fb2ca94151 "Bug 1462784 - Remove EVENTS category. r=njn"
merging dom/base/nsDOMWindowUtils.cpp
merging dom/base/nsFrameMessageManager.cpp
merging dom/events/EventDispatcher.cpp
merging dom/events/EventListenerManager.cpp
merging dom/events/EventStateManager.cpp
merging dom/ipc/ContentChild.cpp
merging dom/ipc/TabChild.cpp
merging dom/ipc/TabParent.cpp
merging dom/ipc/nsIContentChild.cpp
merging dom/ipc/nsIContentParent.cpp
merging js/public/ProfilingStack.h
merging view/nsViewManager.cpp
merging widget/android/nsAppShell.cpp
merging widget/cocoa/nsAppShell.mm
rebasing 466481:53ce9912d321 "Bug 1462784 - Rename the CSS category to LAYOUT. r=njn"
merging js/public/ProfilingStack.h
merging layout/base/RestyleManager.cpp
merging layout/style/ComputedStyle.cpp
merging tools/profiler/tests/gtest/GeckoProfiler.cpp
rebasing 466482:2f6327eddde7 "Bug 1462784 - Annotate layout-related stacks with the LAYOUT category instead of the GRAPHICS category. r=njn"
merging layout/base/PresShell.cpp
merging layout/base/nsLayoutUtils.cpp
merging layout/base/nsRefreshDriver.cpp
rebasing 466483:4a1bd948e65c "Bug 1462784 - Add a DOM category and use it for the WebIDL binding stack labels. r=njn"
merging dom/bindings/Codegen.py
merging js/public/ProfilingStack.h
rebasing 466484:16abc3c4bd8e "Bug 1462784 - Remove the STORAGE category. r=njn"
merging dom/indexedDB/ActorsChild.cpp
merging dom/indexedDB/ActorsParent.cpp
merging dom/storage/StorageDBThread.cpp
merging js/public/ProfilingStack.h
merging storage/mozStorageConnection.cpp
merging storage/mozStorageStatement.cpp
merging tools/profiler/tests/gtest/GeckoProfiler.cpp
rebasing 466485:35362bc94068 "Bug 1462784 - Relabel various other stuff as being OTHER. r=njn"
merging dom/base/nsFrameLoader.cpp
merging gfx/thebes/gfxWindowsPlatform.cpp
merging js/xpconnect/src/XPCComponents.cpp
merging widget/cocoa/nsChildView.mm
merging widget/gtk/nsWindow.cpp
merging widget/uikit/nsWindow.mm
merging xpcom/io/FileUtilsWin.cpp
rebasing 466486:d79d4da6d51a "Bug 1462784 - Add an IDLE category. r=njn"
merging js/public/ProfilingStack.h
merging widget/android/nsAppShell.cpp
rebasing 466487:8328ecf80068 "Bug 1462784 - Annotate idle stacks in the chromium event loop. r=froydnj"
merging ipc/chromium/src/base/message_pump_default.cc
rebasing 466488:ec639d76a359 "Bug 1462784 - Annotate idle stacks in the main thread event loop. r=froydnj"
merging xpcom/threads/Scheduler.cpp
merging xpcom/threads/ThreadEventQueue.cpp
rebasing 466489:28e5e421b82e "Bug 1462784 - Annotate idle stacks in the native event loop on macOS. r=spohl"
merging widget/cocoa/nsAppShell.mm
rebasing 466490:9e6c0c0f2fad "Bug 1462784 - Annotate idle stacks in the native event loop on Windows. r=froydnj"
merging widget/windows/nsAppShell.cpp
rebasing 466491:83271e841a84 "Bug 1462784 - Annotate idle stacks in the native event loop on Linux. r=froydnj"
merging widget/gtk/nsAppShell.cpp
rebasing 466492:93f1bea71694 "Bug 1462784 - Add idle annotations for DOM worker threads. r=froydnj"
merging dom/workers/WorkerPrivate.cpp
rebasing 466493:9d5a9c01ca0f "Bug 1462784 - Annotate idle stacks in nsThreadPool. r=froydnj"
merging xpcom/threads/nsThreadPool.cpp
rebasing 466494:0db0496060d4 "Bug 1462784 - Add the list of categories into the profile JSON and bump the version to 11. r=njn"
merging tools/profiler/core/platform.cpp
rebasing 466495:c35ec77677ba "Bug 1462784 - Update the devtools performance panel for the new category list. r=gregtatum" (tip)
merging devtools/client/locales/en-US/performance.properties
merging devtools/client/performance/modules/categories.js
merging devtools/client/performance/modules/logic/frame-utils.js
merging devtools/client/performance/test/browser_perf-tree-view-02.js
merging devtools/client/performance/test/browser_perf-tree-view-08.js
merging devtools/client/performance/test/helpers/synth-utils.js
merging devtools/client/performance/test/unit/test_profiler-categories.js
merging devtools/client/performance/test/unit/test_tree-model-07.js
merging devtools/client/performance/test/unit/test_tree-model-08.js
merging devtools/client/performance/test/unit/test_tree-model-09.js
merging devtools/client/shared/widgets/FlameGraph.js
warning: conflicts while merging devtools/client/performance/modules/categories.js! (edit, then use 'hg resolve --mark')
warning: conflicts while merging devtools/client/performance/test/unit/test_profiler-categories.js! (edit, then use 'hg resolve --mark')
warning: conflicts while merging devtools/client/performance/test/unit/test_tree-model-08.js! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/c2911a626671
Change the enum ProfilingStackFrame::Category from a bitfield to a regular enum. r=njn
https://hg.mozilla.org/integration/autoland/rev/692017229de6
Merge GC and CC categories into one category. r=njn
https://hg.mozilla.org/integration/autoland/rev/1d38a4cf5a4a
Remove EVENTS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/99b4a433a8e5
Rename the CSS category to LAYOUT. r=njn
https://hg.mozilla.org/integration/autoland/rev/106967fc29d2
Annotate layout-related stacks with the LAYOUT category instead of the GRAPHICS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/0663d1a6d2da
Add a DOM category and use it for the WebIDL binding stack labels. r=njn
https://hg.mozilla.org/integration/autoland/rev/e09c38853172
Remove the STORAGE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/329645ff1e23
Relabel various other stuff as being OTHER. r=njn
https://hg.mozilla.org/integration/autoland/rev/e5ad2e525ea9
Add an IDLE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/6fe79d1ca1bd
Annotate idle stacks in the chromium event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/34e71c789903
Annotate idle stacks in the main thread event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/68eabfbf3c16
Annotate idle stacks in the native event loop on macOS. r=spohl
https://hg.mozilla.org/integration/autoland/rev/d1ca8b0f2221
Annotate idle stacks in the native event loop on Windows. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/a543b94b049a
Annotate idle stacks in the native event loop on Linux. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/71fe35fd1f7e
Add idle annotations for DOM worker threads. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/7880f9dc7023
Annotate idle stacks in nsThreadPool. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/88321efb673b
Add the list of categories into the profile JSON and bump the version to 11. r=njn
https://hg.mozilla.org/integration/autoland/rev/79556798ff9f
Update the devtools performance panel for the new category list. r=gregtatum
Backed out for ESlint failure on FlameGraph.js:1297.

backout: https://hg.mozilla.org/integration/autoland/rev/66f87c551f18e83f5b04f34c42d2feddbe4fd88c

push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=79556798ff9f2fdab1bf1212cd27399d6d5c599d&group_state=expanded

failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=181412525&repo=autoland&lineNumber=297

[task 2018-06-01T20:33:22.292Z] New python executable in /builds/worker/checkouts/gecko/obj-x86_64-pc-linux-gnu/_virtualenvs/init/bin/python2.7
[task 2018-06-01T20:33:22.292Z] Also creating executable in /builds/worker/checkouts/gecko/obj-x86_64-pc-linux-gnu/_virtualenvs/init/bin/python
[task 2018-06-01T20:33:24.258Z] Installing setuptools, pip, wheel...done.
[task 2018-06-01T20:33:25.480Z] running build_ext
[task 2018-06-01T20:33:25.480Z] building 'psutil._psutil_linux' extension
[task 2018-06-01T20:33:25.480Z] creating build
[task 2018-06-01T20:33:25.480Z] creating build/temp.linux-x86_64-2.7
[task 2018-06-01T20:33:25.480Z] creating build/temp.linux-x86_64-2.7/psutil
[task 2018-06-01T20:33:25.480Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_linux.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o
[task 2018-06-01T20:33:25.481Z] creating build/lib.linux-x86_64-2.7
[task 2018-06-01T20:33:25.481Z] creating build/lib.linux-x86_64-2.7/psutil
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/psutil/_psutil_common.o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o -o build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so
[task 2018-06-01T20:33:25.481Z] building 'psutil._psutil_posix' extension
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
[task 2018-06-01T20:33:25.481Z] x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/psutil/_psutil_common.o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o -o build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so
[task 2018-06-01T20:33:25.481Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so -> psutil
[task 2018-06-01T20:33:25.481Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so -> psutil
[task 2018-06-01T20:33:25.481Z] 
[task 2018-06-01T20:33:25.481Z] Error processing command. Ignoring because optional. (optional:packages.txt:comm/build/virtualenv_packages.txt)
[task 2018-06-01T20:39:47.932Z] TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/devtools/client/shared/widgets/FlameGraph.js:1297:17 | 'category' is never reassigned. Use 'const' instead. (prefer-const)
[taskcluster 2018-06-01 20:39:48.291Z] === Task Finished ===
[taskcluster 2018-06-01 20:39:48.292Z] Unsuccessful task run with exit code: 1 completed in 692.073 seconds
hg error in cmd: hg rebase -s c2911a626671ec41cad3de50db94996e81f739d5 -d 66f87c551f18: abort: source and destination form a cycle
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/fbea249b0521
Change the enum ProfilingStackFrame::Category from a bitfield to a regular enum. r=njn
https://hg.mozilla.org/integration/autoland/rev/45f1cff50efc
Merge GC and CC categories into one category. r=njn
https://hg.mozilla.org/integration/autoland/rev/6dc964ee521c
Remove EVENTS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/3ba0b75a1419
Rename the CSS category to LAYOUT. r=njn
https://hg.mozilla.org/integration/autoland/rev/88a612098ee5
Annotate layout-related stacks with the LAYOUT category instead of the GRAPHICS category. r=njn
https://hg.mozilla.org/integration/autoland/rev/83d77dfa66eb
Add a DOM category and use it for the WebIDL binding stack labels. r=njn
https://hg.mozilla.org/integration/autoland/rev/5bc21aa25ea7
Remove the STORAGE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/a3c9ec2c9d7a
Relabel various other stuff as being OTHER. r=njn
https://hg.mozilla.org/integration/autoland/rev/d539f9f0f7ba
Add an IDLE category. r=njn
https://hg.mozilla.org/integration/autoland/rev/8d812a39d56f
Annotate idle stacks in the chromium event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/4d488c0cdc69
Annotate idle stacks in the main thread event loop. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/400afc8aaee2
Annotate idle stacks in the native event loop on macOS. r=spohl
https://hg.mozilla.org/integration/autoland/rev/7cde6d6997b6
Annotate idle stacks in the native event loop on Windows. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/e40a185033e5
Annotate idle stacks in the native event loop on Linux. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/b2adab83964f
Add idle annotations for DOM worker threads. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/21c3c5fd4fac
Annotate idle stacks in nsThreadPool. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/23e0775d9c9d
Add the list of categories into the profile JSON and bump the version to 11. r=njn
https://hg.mozilla.org/integration/autoland/rev/072ca507a4ba
Update the devtools performance panel for the new category list. r=gregtatum
Flags: needinfo?(mstange)
You need to log in before you can comment on or make changes to this bug.