Pref on the cross-process shared font list for dev builds
Categories
(Core :: Layout: Text and Fonts, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: jfkthame, Assigned: jfkthame)
References
(Depends on 1 open bug, Blocks 1 open bug, Regressed 2 open bugs)
Details
(Keywords: perf-alert)
Attachments
(10 files)
(deleted),
text/x-phabricator-request
|
Details | |
Bug 1533462 - Suppress spurious valgrind errors due to fontconfig's internal caching trickery. r=njn
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
Backed out changeset ed8d5ec80203 (Bug 1533462) to revert the gfx.e10s.font-list.shared pref change.
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
In bug 1514869, I plan to land the code preffed-off. Then here, we'll turn it on by default for Nightly builds so we can start to get some testing, while leaving it disabled for Beta/Release until we have some confidence in the new code.
Assignee | ||
Updated•6 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
This is pretty much on hold pending the shmem-protection work in bug 1550900, which we'll want to make use of (in bug 1550037) to make the font-list more secure before we enable it.
There's also a crash (bug 1554819) that a few people have encountered when manually preffing-on this; I think we need to figure out and fix that before we pref on more widely. Currently we have no known STR there, which is making it difficult to investigate beyond re-auditing the code for possible weaknesses.
Comment 3•5 years ago
|
||
Jonathan, this is marked as M4 (which there's no date for yet, but maybe end of Q3). Does that sound right for this?
Assignee | ||
Comment 4•5 years ago
|
||
Hard to say - it depends on progress on the two dependencies mentioned in comment 2. (I guess I'd be happy enough to pref on for dev builds even before bug 1550900/bug 1550037 is completed, if others agree with that, but we really need to get to the root of bug 1554819; so far, it's not clear to me what's causing the issue there.)
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 5•4 years ago
|
||
I think it's time we should flip this pref for Nightly builds, and see what shakes out. I'm still mystified by bug 1633254, but perhaps wider testing will help us find a pattern that provides more insight.
Assignee | ||
Comment 6•4 years ago
|
||
Comment 8•4 years ago
|
||
Backed out for valgrind failures.
backout: https://hg.mozilla.org/integration/autoland/rev/ee3d2ceb3d6a41c1c9b3ced2065519948798a732
failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=306646498&repo=autoland&lineNumber=55351
[task 2020-06-17T14:30:32.250Z] 14:30:32 INFO - 24:03.53 ==14102== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 2 from 2)
[task 2020-06-17T14:30:47.096Z] 14:30:47 INFO - 24:18.38 ==14074== Warning: set address range perms: large range [0xe923c7e000, 0xe9a387e000) (noaccess)
[task 2020-06-17T14:30:50.981Z] 14:30:50 INFO - 24:22.27 --14074-- Archiving syms at 0x1bdeb180-0x1be6ebc0 in /builds/worker/workspace/obj-build/security/nss/lib/freebl/freebl_freeblpriv3/libfreeblpriv3.so (have_dinfo 1)
[task 2020-06-17T14:30:50.982Z] 14:30:50 INFO - 24:22.27 --14074-- Scanning and archiving ExeContexts ...
[task 2020-06-17T14:30:51.498Z] 14:30:51 INFO - 24:22.78 --14074-- Scanned 3,389,719 ExeContexts, archived 1,188 ExeContexts
[task 2020-06-17T14:30:51.508Z] 14:30:51 INFO - 24:22.79 --14074-- Archiving syms at 0x1bda1880-0x1bdd3d93 in /builds/worker/workspace/obj-build/security/nss/lib/softoken/softoken_softokn3/libsoftokn3.so (have_dinfo 1)
[task 2020-06-17T14:30:51.508Z] 14:30:51 INFO - 24:22.79 --14074-- Scanning and archiving ExeContexts ...
[task 2020-06-17T14:30:52.032Z] 14:30:52 INFO - 24:23.32 --14074-- Scanned 3,389,774 ExeContexts, archived 5,035 ExeContexts
[task 2020-06-17T14:30:52.323Z] 14:30:52 INFO - 24:23.61 --14074-- Archiving syms at 0x1732f2a0-0x17335ba3 in /lib/x86_64-linux-gnu/libnss_files-2.19.so (have_dinfo 1)
[task 2020-06-17T14:30:52.323Z] 14:30:52 INFO - 24:23.61 --14074-- Scanning and archiving ExeContexts ...
[task 2020-06-17T14:30:52.854Z] 14:30:52 INFO - 24:24.14 --14074-- Scanned 3,392,960 ExeContexts, archived 60 ExeContexts
[task 2020-06-17T14:30:52.863Z] 14:30:52 INFO - 24:24.15 ==14074==
[task 2020-06-17T14:30:52.864Z] 14:30:52 INFO - 24:24.15 ==14074== HEAP SUMMARY:
[task 2020-06-17T14:30:52.864Z] 14:30:52 INFO - 24:24.15 ==14074== in use at exit: 2,562,843 bytes in 23,537 blocks
[task 2020-06-17T14:30:52.864Z] 14:30:52 INFO - 24:24.15 ==14074== total heap usage: 4,238,565 allocs, 4,215,028 frees, 2,862,761,433 bytes allocated
[task 2020-06-17T14:30:52.864Z] 14:30:52 INFO - 24:24.15 ==14074==
[task 2020-06-17T14:30:52.874Z] 14:30:52 INFO - 24:24.16 ==14074== Searching for pointers to 22,696 not-freed blocks
[task 2020-06-17T14:30:52.939Z] 14:30:52 INFO - 24:24.22 ==14074== Checked 39,364,128 bytes
[task 2020-06-17T14:30:52.939Z] 14:30:52 INFO - 24:24.23 ==14074==
[task 2020-06-17T14:30:53.439Z] 14:30:53 INFO - 24:24.72 TEST-UNEXPECTED-FAIL | valgrind-test | 32 bytes in 1 blocks are definitely lost at malloc / FcNameParseCharSet / FcNameConvert / FcNameParse
Also these other frequent failures after retriggers: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&searchStr=windows%2C7%2Cshippable%2Copt%2Cmochitests%2Ctest-windows7-32-shippable%2Fopt-mochitest-plain-e10s-1%2Cm%281%29&tochange=b512f19cff2e3da7059949b72d80e9a442460d3f&fromchange=1e3e996bb9a125cd6b152dc17c03ead45f0d3859&selectedTaskRun=IxH1bEbtQnG9_RIb1_G6dQ.0
failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=306652331&repo=autoland&lineNumber=6215
Assignee | ||
Comment 9•4 years ago
|
||
The valgrind "failures" are similar to existing ones that we have suppressed since bug 1187649; they're not real issues, they are false-positives that result from fontconfig's tricky caching implementation, per https://bugs.freedesktop.org/show_bug.cgi?id=8215. So we just need to add the new callstack to the suppression file.
The intermittent failures in some of the subtests of layout/style/test/test_transitions.html (on Win7 only) look like they're probably a result of the test being too sensitive to timings, but I'm trying to look into this a bit further. If it's only Win7, I might consider simply marking them as intermittent, but ideally we can find a way to make them more reliable.
Assignee | ||
Comment 10•4 years ago
|
||
Assignee | ||
Comment 11•4 years ago
|
||
The reason for the intermittent failures in layout/style/test/test_transitions.html on Win7 is that it's getting unlucky (sometimes) with timing. Recall that we have a deferred task that runs shortly after browser startup to collect font metadata that we need for full font-matching support; this runs in 50ms slices in the parent process, and on Windows it is started (by default) 2 minutes after launch.
Unluckily, it turns out that on Win7-opt, in the mochitest-1 chunk, test_transitions.html ends up running just around the 2 minute mark after the browser was launched, and -- if the timing works out just right -- the deferred font-info loader may fire in the middle of the transitions that we're trying to test, and cause just enough jank to upset some of the tests.
We can work around this issue by forcing the font loader to run immediately instead of after a 2-minute delay (as we already do for some font-matching tests elsewhere), so that it will have completed its work before the timing-sensitive transition tests run. With the delay set to zero instead of 2 minutes, the M1 test seems to be reliably green even on win7:
https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=e29c58221e96a4bee03d60785448cf73daa77863&searchStr=mochitest
Assignee | ||
Comment 12•4 years ago
|
||
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/3ca0a476babf
https://hg.mozilla.org/mozilla-central/rev/5be26c4cc1b8
https://hg.mozilla.org/mozilla-central/rev/ed8d5ec80203
Comment 15•4 years ago
|
||
== Change summary for alert #26292 (as of Mon, 22 Jun 2020 18:37:38 GMT) ==
Improvements:
71% Base Content Resident Unique Memory windows7-32-shippable opt 41,179,818.67 -> 11,981,141.33
50% Base Content Heap Unclassified macosx1014-64-shippable opt 8,914,464.33 -> 4,500,218.00
30% Base Content Explicit macosx1014-64-shippable opt 15,822,336.00 -> 11,137,536.00
27% Base Content Heap Unclassified linux1804-64-shippable opt 5,727,099.00 -> 4,206,921.00
25% Base Content Heap Unclassified linux1804-64-shippable-qr opt 5,997,933.33 -> 4,476,377.00
22% Base Content Resident Unique Memory macosx1014-64-shippable opt 22,016,597.33 -> 17,202,176.00
16% Heap Unclassified macosx1014-64-shippable opt 113,712,595.98 -> 95,317,995.30
15% Heap Unclassified macosx1014-64-shippable opt tp6 125,547,424.54 -> 106,952,672.08
12% Base Content Explicit linux1804-64-shippable-qr opt 13,763,754.67 -> 12,053,845.33
12% Resident Memory windows7-32-shippable opt 618,780,626.10 -> 543,917,992.57
12% Base Content Explicit linux1804-64-shippable opt 13,342,378.67 -> 11,802,624.00
11% Resident Memory windows7-32-shippable opt tp6 691,614,630.08 -> 615,634,182.85
10% Base Content Resident Unique Memory linux1804-64-shippable opt 20,012,117.33 -> 17,925,632.00
8% Base Content Resident Unique Memory linux1804-64-shippable-qr opt 19,766,186.67 -> 18,188,629.33
4% Explicit Memory macosx1014-64-shippable opt tp6 532,843,698.67 -> 509,459,267.44
4% Explicit Memory macosx1014-64-shippable opt 414,544,849.54 -> 396,377,360.58
3% Heap Unclassified linux1804-64-shippable opt 78,220,027.45 -> 75,608,414.16
3% Base Content Resident Unique Memory windows10-64-shippable opt 14,182,229.33 -> 13,719,040.00
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26292
Comment 16•4 years ago
|
||
== Change summary for alert #26296 (as of Tue, 23 Jun 2020 00:51:25 GMT) ==
Improvements:
21% raptor-tp6-twitch-firefox-cold fcp linux64-shippable-qr opt 104.75 -> 82.50
6% raptor-tp6-twitch-firefox-cold linux64-shippable-qr opt 260.47 -> 244.87
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26296
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 17•4 years ago
|
||
We've seen enough issues related to this that I think we should revert the pref change for now. In particular bug 1647868 makes the browser unusable for some Debian users (at least), which is pretty bad... need to figure that one out before we re-enable this.
Assignee | ||
Comment 18•4 years ago
|
||
Comment 19•4 years ago
|
||
Updated•4 years ago
|
Comment 20•4 years ago
|
||
Backout merged: https://hg.mozilla.org/mozilla-central/rev/b96cdb2a5b42
Comment 21•4 years ago
|
||
== Change summary for alert #26378 (as of Tue, 30 Jun 2020 03:18:46 GMT) ==
Regressions:
13% perf_reftest_singletons bidi-resolution-1.html linux64-shippable opt e10s stylo 311.51 -> 352.45
13% perf_reftest_singletons bidi-resolution-1.html linux64-shippable opt e10s stylo 312.40 -> 351.78
12% perf_reftest_singletons bidi-resolution-1.html linux64-shippable-qr opt e10s stylo 351.04 -> 392.70
4% startup_about_home_paint_realworld_webextensions linux64-shippable-qr opt e10s stylo 979.50 -> 1,015.08
Improvements:
98% tp5n main_normal_fileio windows7-32-shippable opt e10s stylo 289,138,766.92 -> 5,481,508.33
96% tp5n main_normal_fileio windows10-64-shippable-qr opt e10s stylo 23,025,901.67 -> 983,443.50
95% tp5n main_normal_fileio windows10-64-shippable opt e10s stylo 22,918,415.00 -> 1,084,621.92
15% ts_paint_webext linux64-shippable-qr opt e10s stylo 321.42 -> 271.75
14% ts_paint_webext linux64-shippable opt e10s stylo 219.58 -> 189.17
13% ts_paint linux64-shippable opt e10s stylo 219.00 -> 189.75
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26378
Comment 22•4 years ago
|
||
Backout alert
== Change summary for alert #26357 (as of Sat, 27 Jun 2020 02:01:57 GMT) ==
Regressions:
255% Base Content Resident Unique Memory windows7-32-shippable opt 11,306,666.67 -> 40,134,997.33
94% Base Content Heap Unclassified macosx1014-64-shippable opt 4,678,039.67 -> 9,073,973.67
41% Base Content Explicit macosx1014-64-shippable opt 11,294,378.67 -> 15,940,266.67
36% Base Content Heap Unclassified linux1804-64-shippable opt 4,207,010.00 -> 5,728,128.00
34% Base Content Heap Unclassified linux1804-64-shippable-qr opt 4,477,120.00 -> 5,999,247.33
27% Base Content Resident Unique Memory macosx1014-64-shippable opt 17,253,034.67 -> 21,924,010.67
19% Heap Unclassified macosx1014-64-shippable opt 95,264,640.59 -> 113,373,461.68
17% Heap Unclassified macosx1014-64-shippable opt tp6 107,139,724.53 -> 125,124,358.84
14% Resident Memory windows7-32-shippable opt 539,981,612.32 -> 614,539,346.21
13% Base Content Explicit linux1804-64-shippable opt 11,622,058.67 -> 13,173,589.33
13% Base Content Explicit linux1804-64-shippable-qr opt 11,893,760.00 -> 13,463,210.67
11% Resident Memory windows7-32-shippable opt tp6 615,219,702.11 -> 682,714,863.80
10% Base Content Resident Unique Memory linux1804-64-shippable-qr opt 17,851,818.67 -> 19,555,157.33
9% Base Content Resident Unique Memory linux1804-64-shippable opt 18,002,432.00 -> 19,632,298.67
5% Explicit Memory macosx1014-64-shippable opt 394,932,879.69 -> 413,820,506.03
4% Explicit Memory macosx1014-64-shippable opt tp6 507,622,578.53 -> 526,919,061.00
3% Heap Unclassified linux1804-64-shippable opt 75,667,074.64 -> 78,058,080.30
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26357
Comment 23•4 years ago
|
||
Backout alert for raptor
== Change summary for alert #26364 (as of Sun, 28 Jun 2020 16:27:49 GMT) ==
Regressions:
28% raptor-tp6-twitch-firefox-cold fcp linux64-shippable-qr opt webrender 82.17 -> 105.08
6% raptor-tp6-twitch-firefox-cold linux64-shippable-qr opt webrender 246.05 -> 260.82
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26364
Assignee | ||
Comment 25•4 years ago
|
||
Depends on D87177
Assignee | ||
Comment 26•4 years ago
|
||
One other issue that arises when we enable the shared font list: I'm seeing frequent intermittent failures of certain tests (e.g. spell-check and animation-related tests) on try because the deferred font loader (runs approx 8s after browser startup on macOS, 2min after startup on Windows) triggers a global reflow when it completes. This "extra" reflow (which is unrelated to the specific content or functionality being tested) can interfere with tests that, for example, are watching for specific reflow events, or that capture a screenshot with the spell-check underlining.
(Comparable behaviors can be demonstrated even without the shared font list, but don't generally occur in CI because the individual in-process font lists don't usually have to trigger a global reflow; this would only happen if the active testcase was depending on local-fontname lookups that depended on the deferred loader. But the global shared list doesn't know whether any of its client content processes might depend on something like that, so it unconditionally triggers a reflow when the loader finishes.)
To avoid -- or at least greatly reduce the probability of -- these spurious test failures, I propose to configure prefs such that the loader is run "eagerly" by these test harnesses, rather than after a delay that is liable to have it firing off mid-test.
Assignee | ||
Comment 27•4 years ago
|
||
Assignee | ||
Comment 28•4 years ago
|
||
Depends on D87194
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 29•4 years ago
|
||
Assignee | ||
Comment 30•4 years ago
|
||
Depends on D88545
Assignee | ||
Comment 31•4 years ago
|
||
Marking leave-open until the actual pref-change lands.
Comment 32•4 years ago
|
||
Comment 33•4 years ago
|
||
bugherder |
Assignee | ||
Comment 34•4 years ago
|
||
One more test tweak to do here: I'm seeing intermittent-but-frequent failures in test_bug1200533, only on Win7 opt, which appears to be due to the async font info loader -- though it's been started "eagerly" -- completing at an unfortunate moment such that the reflow it triggers may disrupt the async spell-check task and cause a test failure.
(A confirmation of this theory is that when I set the font loader delay very large, so it doesn't get a chance to run at all during the test, these failures didn't happen. But that's potentially bad for some other tests...)
I propose to fix this by allowing the testcases in test_bug1200533 to perform a (single) retry if they initially don't find a "current dictionary". If the first attempt failed because of the font loader completing, an immediate retry should then succeed normally; tryserver confirms that the test becomes much more reliable this way. (The two remaining oranges there are an unrelated intermittent.)
Assignee | ||
Comment 35•4 years ago
|
||
Comment 36•4 years ago
|
||
Comment 37•4 years ago
|
||
Comment 38•4 years ago
|
||
bugherder |
Comment 39•4 years ago
|
||
== Change summary for alert #26887 (as of Tue, 08 Sep 2020 18:12:42 GMT) ==
Improvements:
72% Base Content Resident Unique Memory windows7-32-shippable opt 40,022,698.67 -> 11,125,248.00
48% Base Content Heap Unclassified macosx1014-64-shippable opt 8,739,727.33 -> 4,524,323.67
29% Base Content Explicit macosx1014-64-shippable opt 15,255,210.67 -> 10,767,018.67
27% Base Content Heap Unclassified linux1804-64-shippable opt 5,586,800.00 -> 4,067,114.00
27% Base Content Heap Unclassified linux1804-64-shippable-qr opt 5,631,198.00 -> 4,109,296.67
21% Base Content Resident Unique Memory macosx1014-64-shippable opt 21,224,618.67 -> 16,785,066.67
16% Heap Unclassified macosx1014-64-shippable opt 112,475,748.20 -> 94,363,040.98
14% Heap Unclassified macosx1014-64-shippable opt tp6 121,547,739.21 -> 104,046,982.93
13% Base Content Explicit linux1804-64-shippable-qr opt 12,875,605.33 -> 11,227,648.00
13% Resident Memory windows7-32-shippable opt 603,270,557.32 -> 527,273,300.28
12% Base Content Explicit linux1804-64-shippable opt 12,853,418.67 -> 11,269,290.67
12% Heap Unclassified linux1804-64-shippable opt 78,863,660.97 -> 69,312,758.52
12% Resident Memory windows7-32-shippable opt tp6 689,758,267.83 -> 607,681,586.64
11% Heap Unclassified linux1804-64-shippable opt tp6 97,392,910.91 -> 86,464,651.37
10% Base Content Resident Unique Memory linux1804-64-shippable opt 19,826,858.67 -> 17,849,002.67
9% Base Content Resident Unique Memory linux1804-64-shippable-qr opt 19,383,978.67 -> 17,630,378.67
6% Base Content Resident Unique Memory windows10-64-shippable opt 13,154,986.67 -> 12,427,093.33
5% Explicit Memory macosx1014-64-shippable opt 395,166,686.76 -> 374,554,407.74
4% Explicit Memory macosx1014-64-shippable opt tp6 504,702,449.07 -> 484,464,690.09
3% Explicit Memory linux1804-64-shippable opt 365,206,081.46 -> 354,103,152.13
3% Explicit Memory linux1804-64-shippable opt tp6 487,777,210.50 -> 475,068,807.58
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26887
Comment 40•4 years ago
|
||
== Change summary for alert #26946 (as of Wed, 16 Sep 2020 09:25:14 GMT) ==
Improvements:
5% google-maps ContentfulSpeedIndex android-hw-g5-7-0-arm7-api-16-shippable opt cold 1,518.00 -> 1,444.75
3% google-maps ContentfulSpeedIndex android-hw-g5-7-0-arm7-api-16-shippable opt cold 1,494.79 -> 1,446.67
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26946
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Description
•