Add allowlist support to GfxInfo
Categories
(Core :: Graphics, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox75 | --- | fixed |
People
(Reporter: aosmond, Assigned: aosmond)
References
Details
Attachments
(3 files)
We have quasi rollout logic in gfxPlatform for rolling out WebRender. It is getting more complicated with each revision. It is fairly simple to update the current blocklist to have a second pass which uses the same rules for specific features marked for rollout. These rules will have a special set of rollout status codes so we can easily identity them (e.g. ROLLOUT_OK, ROLLOUT_QUALIFIED, BLOCKED_ROLLOUT). We also need to extend the blocklist to support additional criteria required by the current rollout logic (device family ranges, battery status, screen size buckets, recent Windows 10).
| Assignee | ||
Comment 1•6 years ago
|
||
| Assignee | ||
Comment 2•6 years ago
|
||
The blocklist currently works by checking the current configuration
against a set of GfxDriverInfo rules. We stop searching as soon as we
find the first match, and return whatever status code that has.
This patch adds a second pass for features marked for rollout. The
current blocklisting rules will still apply as normal. However it will
then review the rollout list rules using the same logic. If we don't get
a match, then we block the feature otherwise we use the rollout status
code given in the rule.
New status codes introduced as part of this patch are as follows:
BLOCKED_ROLLOUT - Did not match any rules on the rollout list.
ROLLOUT_OK - Same as STATUS_OK but passed the rollout list.
ROLLOUT_QUALIFIED - Same as ROLLOUT_OK but should be controlled by our
qualified preference for experimentation purposes.
| Assignee | ||
Comment 3•6 years ago
|
||
As part of the WebRender rollout, we have been only allowing users
meeting particular platform, battery and screen size requirements (among
others) to get WebRender by default. This patch adds support for battery
and screen size filters in the blocklist rules to allow us to control
that more easily. It also adds kludgey support for checking for recent
Windows 10 build numbers for rollout purposes; implementing this the
proper way would require an implementation like driver version checks,
which are much more complicated than most of the rules.
| Assignee | ||
Comment 4•6 years ago
|
||
Currently the blocklist can block groups of devices, called a
DeviceFamily. However this only allows us to check specific IDs and not
ranges of device IDs like we do currently for the WebRender rollout.
This patch allows a device family to now specify start and end values
for device IDs we want to match in the blocklist rule.
Updated•6 years ago
|
| Assignee | ||
Comment 5•6 years ago
|
||
try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=a8d0f42699c60342d02b3d9010e6ec39569e0ed1
Comment 7•6 years ago
|
||
Backed out for assertion failures on GfxInfoBase.cpp
backout: https://hg.mozilla.org/integration/autoland/rev/72f4dbe0d4336578bb1de382cdccc64eb7f36b47
failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=288704272&repo=autoland&lineNumber=1153
[task 2020-02-13T12:18:45.434Z] 12:18:45 INFO - GECKO(1944) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to c:\users\task_1581594396\appdata\local\temp\tmpjb2vpn.mozrunner\runtests_leaks_gpu_pid7220.log
[task 2020-02-13T12:18:45.493Z] 12:18:45 INFO - GECKO(1944) | 1581596325489 Marionette TRACE Received observer notification command-line-startup
[task 2020-02-13T12:18:45.493Z] 12:18:45 INFO - GECKO(1944) | 1581596325490 Marionette DEBUG Init aborted (running=false, enabled=true, finalUIStartup=false)
[task 2020-02-13T12:18:45.632Z] 12:18:45 INFO - GECKO(1944) | 1581596325626 Marionette TRACE Received observer notification toplevel-window-ready
[task 2020-02-13T12:18:45.792Z] 12:18:45 INFO - GECKO(1944) | Assertion failure: manager (failed to get nsIScreenManager), at /builds/worker/workspace/build/src/widget/GfxInfoBase.cpp:644
[task 2020-02-13T12:18:45.891Z] 12:18:45 INFO - GECKO(1944) | #01: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x153288]
[task 2020-02-13T12:18:45.892Z] 12:18:45 INFO - GECKO(1944) | #02: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x166fa9]
[task 2020-02-13T12:18:45.892Z] 12:18:45 INFO - GECKO(1944) | #03: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x161f48]
[task 2020-02-13T12:18:45.893Z] 12:18:45 INFO - GECKO(1944) | #04: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x16ac4e]
[task 2020-02-13T12:18:45.894Z] 12:18:45 INFO - GECKO(1944) | #05: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x1d9b52]
[task 2020-02-13T12:18:45.894Z] 12:18:45 INFO - GECKO(1944) | #06: DumpCompleteHeap[Z:\task_1581594396\build\application\firefox\xul.dll +0x1715812]
[task 2020-02-13T12:18:45.894Z] 12:18:45 INFO - GECKO(1944) | #07: DumpCompleteHeap[Z:\task_1581594396\build\application\firefox\xul.dll +0x16ddac1]
[task 2020-02-13T12:18:45.895Z] 12:18:45 INFO - GECKO(1944) | #08: DumpCompleteHeap[Z:\task_1581594396\build\application\firefox\xul.dll +0x16dd6c0]
[task 2020-02-13T12:18:45.895Z] 12:18:45 INFO - GECKO(1944) | #09: mozilla_dump_image[Z:\task_1581594396\build\application\firefox\xul.dll +0x179b46c]
[task 2020-02-13T12:18:45.895Z] 12:18:45 INFO - GECKO(1944) | #10: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0xbc8f5e]
[task 2020-02-13T12:18:45.895Z] 12:18:45 INFO - GECKO(1944) | #11: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x97624e]
[task 2020-02-13T12:18:45.896Z] 12:18:45 INFO - GECKO(1944) | #12: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x973892]
[task 2020-02-13T12:18:45.896Z] 12:18:45 INFO - GECKO(1944) | #13: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x9749e3]
[task 2020-02-13T12:18:45.896Z] 12:18:45 INFO - GECKO(1944) | #14: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x975140]
[task 2020-02-13T12:18:45.896Z] 12:18:45 INFO - GECKO(1944) | #15: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x197ce9]
[task 2020-02-13T12:18:45.896Z] 12:18:45 INFO - GECKO(1944) | #16: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x19d8e2]
[task 2020-02-13T12:18:45.897Z] 12:18:45 INFO - GECKO(1944) | #17: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x97a7c8]
[task 2020-02-13T12:18:45.897Z] 12:18:45 INFO - GECKO(1944) | #18: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x916cf8]
[task 2020-02-13T12:18:45.897Z] 12:18:45 INFO - GECKO(1944) | #19: mozilla_dump_image[Z:\task_1581594396\build\application\firefox\xul.dll +0x41b11fe]
[task 2020-02-13T12:18:45.898Z] 12:18:45 INFO - GECKO(1944) | #20: mozilla_dump_image[Z:\task_1581594396\build\application\firefox\xul.dll +0x4244563]
[task 2020-02-13T12:18:45.898Z] 12:18:45 INFO - GECKO(1944) | #21: workerlz4_maxCompressedSize[Z:\task_1581594396\build\application\firefox\xul.dll +0x5a2939b]
[task 2020-02-13T12:18:45.898Z] 12:18:45 INFO - GECKO(1944) | #22: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x97b0c4]
[task 2020-02-13T12:18:45.899Z] 12:18:45 INFO - GECKO(1944) | #23: Ordinal0[Z:\task_1581594396\build\application\firefox\xul.dll +0x916cf8]
[task 2020-02-13T12:18:45.899Z] 12:18:45 INFO - GECKO(1944) | #24: workerlz4_maxCompressedSize[Z:\task_1581594396\build\application\firefox\xul.dll +0x5a2871b]
[task 2020-02-13T12:18:45.899Z] 12:18:45 INFO - GECKO(1944) | #25: Ordinal0[Z:\task_1581594396\build\application\firefox\firefox.exe +0x1b3c]
[task 2020-02-13T12:18:45.899Z] 12:18:45 INFO - GECKO(1944) | #26: Ordinal0[Z:\task_1581594396\build\application\firefox\firefox.exe +0x1765]
[task 2020-02-13T12:18:45.900Z] 12:18:45 INFO - GECKO(1944) | #27: Ordinal0[Z:\task_1581594396\build\application\firefox\firefox.exe +0x14f0]
[task 2020-02-13T12:18:45.900Z] 12:18:45 INFO - GECKO(1944) | #28: Ordinal0[Z:\task_1581594396\build\application\firefox\firefox.exe +0x13fa]
[task 2020-02-13T12:18:45.900Z] 12:18:45 INFO - GECKO(1944) | #29: Ordinal0[Z:\task_1581594396\build\application\firefox\firefox.exe +0x145b]
[task 2020-02-13T12:18:45.900Z] 12:18:45 INFO - GECKO(1944) | #30: BaseThreadInitThunk[C:\Windows\System32\KERNEL32.DLL +0x13034]
[task 2020-02-13T12:18:45.901Z] 12:18:45 INFO - GECKO(1944) | #31: RtlUserThreadStart[C:\Windows\SYSTEM32\ntdll.dll +0x71461]
[task 2020-02-13T12:18:46.443Z] 12:18:46 INFO - GECKO(1944) | ###!!! [Parent][MessageChannel::SendAndWait] Error: (msgtype=0x510015,name=PGPU::Msg_GetDeviceStatus) Channel error: cannot send/recv
[task 2020-02-13T12:18:46.443Z] 12:18:46 INFO - GECKO(1944) | [GFX1-]: Failed to initialize GPU process
| Assignee | ||
Updated•6 years ago
|
Comment 9•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/bf13095a03bd
https://hg.mozilla.org/mozilla-central/rev/f1192c87b1e5
https://hg.mozilla.org/mozilla-central/rev/1d4ad169c165
Description
•