TPEGFX/Notes: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Editor ==
== 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

Testing

  • [pchang] run GTest subset
    • ./mach gtest Layers.*
    • GTEST_FILTER='Layers*' MOZ_RUN_GTEST=1 ./mach run --debug //use debugger to debug GTest
  • [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.
      • 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

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
    • 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
  • 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.
  • A useful link to help you reading crash report.
  • refer keyword here https://wiki.mozilla.org/Platform/GFX/TriageSchedule#Keywords