TPEGFX/Notes: Difference between revisions
< TPEGFX
Jump to navigation
Jump to search
m (→Triage) |
Vincent Liu (talk | contribs) |
||
| (17 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
== | == Crash == | ||
* offsite sharing - crash | |||
** Reading crash report on soccorow (kevin) | |||
*** Find the correlation | |||
*** Understand crash reason, crash address | |||
** A look into mini dump/symbols/crash report (vincent) | |||
*** how to load mini dump/symbols | |||
** useful windbg/gdb/lldb commands | |||
*** (lldb) br com add 1 //executes commands when breakpoint was hit | |||
*** (windbg) dt !xul:nsfont | |||
*** (windbg) !analyze -v | |||
** case study | |||
*** https://bugzilla.mozilla.org/show_bug.cgi?id=1353657 (vincent) | |||
*** https://bugzilla.mozilla.org/show_bug.cgi?id=1346421(TBD) | |||
*** https://bugzilla.mozilla.org/show_bug.cgi?id=1357734#c12(ethan) | |||
== Testing == | == Testing == | ||
*[pchang] run GTest subset | *[pchang] run GTest subset | ||
** ./mach gtest Layers.* | ** ./mach gtest Layers.* | ||
** GTEST_FILTER='Layers*' MOZ_RUN_GTEST=1 ./mach run --debug //use debugger to debug GTest | ** GTEST_FILTER='Layers*' MOZ_RUN_GTEST=1 ./mach run --debug //use debugger to debug GTest | ||
*[Michael Leu] - My workflow of building environments for reproducing bugs | |||
** https://drive.google.com/file/d/0B29kx4ibiTBgN0JBTVBiVEh0TUU/view | |||
*[vliu] run Talos | |||
** run Talos with geckoProfile in local (take talos resize as example) | |||
*** a). After Bug 1371838 was landed, you can profile WRRender by geckoProfile. To do this in Talos, please do the following before everything starts. | |||
**** Add WRWorker,WRRenderBackend,Renderer to https://searchfox.org/mozilla-central/rev/7a8c667bdd2a4a32746c9862356e199627c0896d/testing/talos/talos/gecko_profile.py#39 | |||
*** b). run ./mach buildSymbols to generate symbols into .zip file, says firefox-XXX.crashreporter-symbols-full.zip. | |||
*** c). run ./mach talos-test --symbolsPath /Absolute-Path-To-OBJ/dist/firefox-XXX.crashreporter-symbols-full.zip --geckoProfile --cycles 1 --activeTests tresize. After this command, it generated another zip file for geckoProfile in testing/mozharness/build/blobber_upload_dir/. | |||
*** d). unzip zip file generated in c) to get geckoProfile | |||
** run Talos with geckoProfile on try server. You can add |mozharness: --geckoProfile| in your try command.The belowing is a try command example for linux. | |||
*** try: -b o -p linux64 -u none -t all[x64] mozharness: --geckoProfile --rebuild-talos 10 | |||
== Misc == | == Misc == | ||
* [ethan] Canvas performance | * [ethan] Canvas performance | ||
** http://www.bilibili.com/video/av105005/ | ** http://www.bilibili.com/video/av105005/ | ||
* [Michael] FPS adjustment | |||
** layout.frame_rate in about:config (-1 means default which is 60, 1000 at maximum) | |||
* [pchang] Use gecko profiler with symbols | |||
** ac_add_options --enable-profiling | |||
* [pchang] Enable CPU profiling when use release build | |||
** export MOZ_DEBUG_SYMBOLS=1 | |||
** ac_add_options --enable-debug-symbols | |||
*[pchang] Enable ASAP mode | |||
** layout.frame_rate: 0 | |||
** docshell.event_starvation_delay_hint: 1 | |||
*[pchang] dump log with timestamp 5 for debug 2 for Err | |||
** MOZ_LOG=Layers:5,timestamp ./mach run 2>&1|tee omta.log | |||
*[pchang] dump stderr to console on windows | |||
** ./mach run 2>&1|tee console.out | |||
*[Jerry] dump call stack for NS_ASSERTION() or NS_WARNING() | |||
** Set prefix for stack message. | |||
*** https://dxr.mozilla.org/mozilla-central/rev/632e42dca494ec3d90b70325d9c359f80cb3f38a/xpcom/base/nsTraceRefcnt.cpp#845 | |||
** Set stack unwind number | |||
*** https://dxr.mozilla.org/mozilla-central/rev/632e42dca494ec3d90b70325d9c359f80cb3f38a/xpcom/base/nsTraceRefcnt.cpp#880 | |||
** XPCOM_DEBUG_BREAK="stack" ./mach run | |||
== Triage == | == Triage == | ||
*[vliu] Triage flow listed. | *[vliu] Triage flow listed. | ||
| Line 13: | Line 63: | ||
*** Ask reporter set layers.acceleration.disabled as true to try again(depends) | *** Ask reporter set layers.acceleration.disabled as true to try again(depends) | ||
*** Enable/Disalbe ANGLE on windows | *** Enable/Disalbe ANGLE on windows | ||
*** Compare the difference between on/off e10s. | |||
*** Tried to change the preferences to observe. | |||
**** If the issue relatives to painting or text, you can try to change the backend in about:config | |||
***** gfx.canvas.azure.backends | |||
***** gfx.content.azure.backends | |||
**** nglayout.debug.paint_flashing | |||
**** layers.draw-borders | |||
** Ask for about:support | ** Ask for about:support | ||
*** Ask for about:memory if memory related | *** Ask for about:memory if memory related | ||
| Line 19: | Line 76: | ||
** Change priority to P1-3 with reason | ** Change priority to P1-3 with reason | ||
** Add gfx-noted if there is nothing you can follow up | ** Add gfx-noted if there is nothing you can follow up | ||
* Ways to observe occurrence for triage bug. | |||
** Crash report contains Volume to count for crash rate. There is 10 times of Volume increase between each FF version. | |||
*** Install addon bugzilla-socorro-lens can easily see crash rate in graphic view on that bug. | |||
**** [https://addons.mozilla.org/en-US/firefox/addon/bugzilla-socorro-lens/?src=api bugzilla-socorro-lens] | |||
** For Intermittent bug, Orange Factor counts for occurrence rate for that bug you observed. | |||
*** [https://brasstacks.mozilla.com/orangefactor/?display=BugCount&key=platform&tree=all&branch=all&includefiltertype=quicksearch&includefilterdetailsexcludeResolved=false&includefilterdetailsexcludeDisabled=false&includefilterdetailsquicksearch=ALL%20Component%3A%22Canvas%3A%202D%22%20OR%20Component%3A%22Canvas%3A%20WebGL%22%20OR%20Component%3A%22Graphics%22%20OR%20Component%3A%22Graphics%3A%20Layers%22&includefilterdetailsnumbugs=0&includefilterdetailsresolvedIds=&excludefiltertype=quicksearch&excludefilterdetailsquicksearch=&excludefilterdetailsnumbugs=0&excludefilterdetailsresolvedIds= Orangefactor] | |||
* A useful link to help you reading crash report. | |||
** [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Crash_reporting/Understanding_crash_reports Understanding-crash-reports] | |||
* refer keyword here https://wiki.mozilla.org/Platform/GFX/TriageSchedule#Keywords | |||
Latest revision as of 06:41, 28 November 2017
Crash
- offsite sharing - crash
- Reading crash report on soccorow (kevin)
- Find the correlation
- Understand crash reason, crash address
- A look into mini dump/symbols/crash report (vincent)
- how to load mini dump/symbols
- useful windbg/gdb/lldb commands
- (lldb) br com add 1 //executes commands when breakpoint was hit
- (windbg) dt !xul:nsfont
- (windbg) !analyze -v
- case study
- Reading crash report on soccorow (kevin)
Testing
- [pchang] run GTest subset
- ./mach gtest Layers.*
- GTEST_FILTER='Layers*' MOZ_RUN_GTEST=1 ./mach run --debug //use debugger to debug GTest
- [Michael Leu] - My workflow of building environments for reproducing bugs
- [vliu] run Talos
- run Talos with geckoProfile in local (take talos resize as example)
- a). After Bug 1371838 was landed, you can profile WRRender by geckoProfile. To do this in Talos, please do the following before everything starts.
- Add WRWorker,WRRenderBackend,Renderer to https://searchfox.org/mozilla-central/rev/7a8c667bdd2a4a32746c9862356e199627c0896d/testing/talos/talos/gecko_profile.py#39
- b). run ./mach buildSymbols to generate symbols into .zip file, says firefox-XXX.crashreporter-symbols-full.zip.
- c). run ./mach talos-test --symbolsPath /Absolute-Path-To-OBJ/dist/firefox-XXX.crashreporter-symbols-full.zip --geckoProfile --cycles 1 --activeTests tresize. After this command, it generated another zip file for geckoProfile in testing/mozharness/build/blobber_upload_dir/.
- d). unzip zip file generated in c) to get geckoProfile
- a). After Bug 1371838 was landed, you can profile WRRender by geckoProfile. To do this in Talos, please do the following before everything starts.
- run Talos with geckoProfile on try server. You can add |mozharness: --geckoProfile| in your try command.The belowing is a try command example for linux.
- try: -b o -p linux64 -u none -t all[x64] mozharness: --geckoProfile --rebuild-talos 10
- run Talos with geckoProfile in local (take talos resize as example)
Misc
- [ethan] Canvas performance
- [Michael] FPS adjustment
- layout.frame_rate in about:config (-1 means default which is 60, 1000 at maximum)
- [pchang] Use gecko profiler with symbols
- ac_add_options --enable-profiling
- [pchang] Enable CPU profiling when use release build
- export MOZ_DEBUG_SYMBOLS=1
- ac_add_options --enable-debug-symbols
- [pchang] Enable ASAP mode
- layout.frame_rate: 0
- docshell.event_starvation_delay_hint: 1
- [pchang] dump log with timestamp 5 for debug 2 for Err
- MOZ_LOG=Layers:5,timestamp ./mach run 2>&1|tee omta.log
- [pchang] dump stderr to console on windows
- ./mach run 2>&1|tee console.out
- [Jerry] dump call stack for NS_ASSERTION() or NS_WARNING()
- Set prefix for stack message.
- Set stack unwind number
- XPCOM_DEBUG_BREAK="stack" ./mach run
Triage
- [vliu] Triage flow listed.
- Try to reproduce
- Add keyword 'reproducible' if you can reproduce
- Ask reporter set layers.acceleration.disabled as true to try again(depends)
- Enable/Disalbe ANGLE on windows
- Compare the difference between on/off e10s.
- Tried to change the preferences to observe.
- If the issue relatives to painting or text, you can try to change the backend in about:config
- gfx.canvas.azure.backends
- gfx.content.azure.backends
- nglayout.debug.paint_flashing
- layers.draw-borders
- If the issue relatives to painting or text, you can try to change the backend in about:config
- Ask for about:support
- Ask for about:memory if memory related
- ni? people or mgr to help you
- land needed printing message for this bug to observe more information.(this action is providing solution not doing the triage)
- Change priority to P1-3 with reason
- Add gfx-noted if there is nothing you can follow up
- Try to reproduce
- Ways to observe occurrence for triage bug.
- Crash report contains Volume to count for crash rate. There is 10 times of Volume increase between each FF version.
- Install addon bugzilla-socorro-lens can easily see crash rate in graphic view on that bug.
- For Intermittent bug, Orange Factor counts for occurrence rate for that bug you observed.
- Crash report contains Volume to count for crash rate. There is 10 times of Volume increase between each FF version.
- A useful link to help you reading crash report.
- refer keyword here https://wiki.mozilla.org/Platform/GFX/TriageSchedule#Keywords