Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Improved symbols for Windows graphics drivers

6 views
Skip to first unread message

Gabriele Svelto

unread,
Feb 22, 2021, 7:47:16 AM2/22/21
to dev-te...@lists.mozilla.org, stability
[cross-posting to stability]

Hello all,
last year I implemented a mechanism to scrape symbols from Windows
graphics drivers in order to improve the stack traces of crashes
happening within graphics code.

Unfortunately my first attempt was plagued by two important issues:

- Vendor support in their own symbol servers is very sparse. It seems
that the vast majority of the libraries that we care about aren't
available on those.

- Almost no debug information is available so I had to rely on
extracting public symbols together with stack-walking directives. This
had the unfortunate side-effect of collapsing a lot of different crashes
under identical signatures (see bug 1673201 [1] for example).

To address the first issue I've begun manually gathering the bundles of
drivers causing high-volume crashes [2] which paves the way for
automatic scraping. If you encounter high-volume crashes with a specific
driver please add it to that list so that I can feed it to my scraping
scripts; alternatively point me to the crash if you can't find the
driver bundle.

To address the second one we've modified our dumping tool to expose the
fact that we have stack walking information for the affected DLLs but we
lack symbols. The resulting signatures will be more meaningful often
exposing the underlying calls that lead to the crash. See these crashes
for a few examples:

https://crash-stats.mozilla.org/report/index/7f24d4f2-8109-4031-b3af-ccffb0210222
https://crash-stats.mozilla.org/report/index/6d5a0f91-c5af-436d-ab33-10b680210222
https://crash-stats.mozilla.org/report/index/ec728461-2dcd-483c-9cf9-602c90210222

This type of stacks should aggregate around specific driver versions
making it easier to identify problematic ones.

Currently there is only one significant issue remaining: 32-bit drivers
have no stack-walking information at all and very few symbols. I will
probably stop scraping them for this reason; there's just not much value
to be had by doing it.

Given this year's focus on WebRender I expect this area to require more
improvements in the future. Don't hesitate to contact if you need help.

Gabriele

[1] Crash in [@ OpenAdapter10_2] affecting all Firefox versions
https://bugzilla.mozilla.org/show_bug.cgi?id=1673201
[2] https://wiki.mozilla.org/Graphics_Drivers_Symbols

OpenPGP_signature
0 new messages