Closed
Bug 1473465
Opened 6 years ago
Closed 6 years ago
2.16 - 3.65% compiler_metrics num_static_constructors (windows2012-32) regression on push 3d7f2fdc5bf7ca7521013b28e0d8be0785d2b58a (Wed Jul 4 2018)
Categories
(Core :: Graphics: CanvasWebGL, defect, P3)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: igoldan, Assigned: jgilbert)
References
Details
(Keywords: regression, Whiteboard: [gfx-noted])
We have detected a build metrics regression from push: https://hg.mozilla.org/integration/autoland/pushloghtml?changeset=3d7f2fdc5bf7ca7521013b28e0d8be0785d2b58a As author of one of the patches included in that push, we need your help to address this regression. Regressions: 4% compiler_metrics num_static_constructors windows2012-32 opt 514.00 -> 532.75 2% compiler_metrics num_static_constructors windows2012-32 debug 870.00 -> 888.75 You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=14180 On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the jobs in a pushlog format. To learn more about the regressing test(s), please see: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing/Build_Metrics
Reporter | ||
Updated•6 years ago
|
Flags: needinfo?(jgilbert)
Reporter | ||
Updated•6 years ago
|
Component: General → Canvas: WebGL
Product: Testing → Core
Updated•6 years ago
|
Priority: -- → P3
Whiteboard: [gfx-noted]
Assignee | ||
Comment 1•6 years ago
|
||
Yep, that's ANGLE updates for you!
Flags: needinfo?(jgilbert)
Priority: P3 → P5
Assignee | ||
Comment 2•6 years ago
|
||
Oh! This was the WebGPU bindings, hmm...
Assignee: nobody → jgilbert
Priority: P5 → P3
Assignee | ||
Comment 3•6 years ago
|
||
So this is +18 static ctors in both cases. I didn't deliberately add static ctors. In WebIDL, I do add 19 concrete interfaces, but that's the closest to 18 I can find. Regardless, I suspect this is a result of generated bindings classes. :qdot, is that likely? Also, is there a place where we get a dump of the static ctor names? That would make this way easier! (and if we count them, we should be able to list them!)
Flags: needinfo?(kyle)
Flags: needinfo?(igoldan)
Comment 4•6 years ago
|
||
:froydnj- can you answer :jgilberts question about getting a dump of the static ctor names?
Flags: needinfo?(nfroyd)
Comment 5•6 years ago
|
||
(In reply to Joel Maher ( :jmaher ) (UTC+2) (PTO: Back July 17) from comment #4) > :froydnj- can you answer :jgilberts question about getting a dump of the > static ctor names? You can look at the breakpad .sym files (that's from the target.crashreporter-symbols.zip file that you can get from clicking on a "B" job in treeherder and looking at the "Job" tab) and search for "`dynamic initializer for'", as our tests do: https://searchfox.org/mozilla-central/source/toolkit/crashreporter/tools/symbolstore.py#593-596 so grepping .sym files and sorting, for before and after, then diffing the results should be illuminating.
Flags: needinfo?(nfroyd) → needinfo?(jgilbert)
Comment 6•6 years ago
|
||
Clearing ni? for now since it looks like there's more work to do on isolating the static ctors generated.
Flags: needinfo?(kyle)
Reporter | ||
Comment 7•6 years ago
|
||
:jgilbert have you filed any bugs related to these compiler warnings? If so, please link them with this bug.
Reporter | ||
Comment 8•6 years ago
|
||
Clearing ni? as :nfroyd provided the answer.
Flags: needinfo?(igoldan)
Assignee | ||
Comment 9•6 years ago
|
||
$ diff pre.txt post.txt 3304a3305,3323 > static void mozilla::dom::WebGPUBindingType_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUBlendFactor_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUBlendOperation_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUBufferUsage_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUColorWriteBits_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUCompareFunction_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUFilterMode_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUIndexFormat_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUInputStepMode_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPULoadOp_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUPrimitiveTopology_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUShaderStageBit_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUShaderStage_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUStencilOperation_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUStoreOp_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUTextureDimension_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUTextureFormat_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUTextureUsage_Binding::`dynamic initializer for 'sConstants_specs''() > static void mozilla::dom::WebGPUVertexFormat_Binding::`dynamic initializer for 'sConstants_specs''() https://dxr.mozilla.org/mozilla-central/source/obj-x86_64-pc-linux-gnu/dom/bindings/WebGPUBinding.cpp#8752 > namespace WebGPUBindingType_Binding { > [...] > static const ConstantSpec sConstants_specs[] = { > { "UNIFORM_BUFFER", JS::NumberValue(0U) }, > { "SAMPLER", JS::NumberValue(1U) }, > { "SAMPLED_TEXTURE", JS::NumberValue(2U) }, > { "STORAGE_BUFFER", JS::NumberValue(3U) }, > { 0, JS::UndefinedValue() } > }; I don't think there's much to be done about these. (fyi-ni :qdot)
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(jgilbert) → needinfo?(kyle)
Resolution: --- → WONTFIX
Assignee | ||
Comment 10•6 years ago
|
||
FWIW the process here was: - Download a Before and After target.crashreporter-symbols.zip from the B job - Extract - grep -Ehor 'static.+dynamic initializer for.+$' Before/xul.pdb|sort|uniq > Before.txt - (E: extended ('full') regex, h: omit filename, o: only matched text, r: recursive) - (same with After) - diff Before.txt After.txt
Comment 11•6 years ago
|
||
Nice, thank you for looking. We liberally applied constexpr and other tricks to Value.h to make DOM bindings static constructors go away at one point; I guess it's time to do it with feeling.
Assignee | ||
Comment 12•6 years ago
|
||
FWIW, there's a very good chance most (all?) of these constants will become WebIDL enums in the near future, too.
Comment 13•6 years ago
|
||
Yeah, this should be fine for the moment. We can file a followup on the constexpr changes.
Flags: needinfo?(kyle)
Comment 14•6 years ago
|
||
(In reply to Kyle Machulis [:qdot] [:kmachulis] (if a patch has no decent commit message, automatic r-) from comment #13) > Yeah, this should be fine for the moment. We can file a followup on the > constexpr changes. Filed bug 1478671 on the constexpr changes.
You need to log in
before you can comment on or make changes to this bug.
Description
•