From fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:14:29 +0200 Subject: Merging upstream version 125.0.1. Signed-off-by: Daniel Baumann --- .../docs/img/treeherder-trigger-symbols.png | Bin 0 -> 44545 bytes tools/tryselect/docs/index.rst | 35 ++++++++ tools/tryselect/docs/selectors/index.rst | 2 + .../selectors/chooser/templates/chooser.html | 11 +++ tools/tryselect/selectors/fuzzy.py | 7 +- tools/tryselect/selectors/perf.py | 23 ++++- tools/tryselect/task_config.py | 20 ++++- tools/tryselect/tasks.py | 11 +++ tools/tryselect/test/test_fuzzy.py | 2 +- tools/tryselect/test/test_perf.py | 28 ++++++ tools/tryselect/test/test_tasks.py | 98 ++++++++++++++++++++- tools/tryselect/try_presets.yml | 52 +++++++++++ 12 files changed, 281 insertions(+), 8 deletions(-) create mode 100644 tools/tryselect/docs/img/treeherder-trigger-symbols.png (limited to 'tools/tryselect') diff --git a/tools/tryselect/docs/img/treeherder-trigger-symbols.png b/tools/tryselect/docs/img/treeherder-trigger-symbols.png new file mode 100644 index 0000000000..6c799c0bf0 Binary files /dev/null and b/tools/tryselect/docs/img/treeherder-trigger-symbols.png differ diff --git a/tools/tryselect/docs/index.rst b/tools/tryselect/docs/index.rst index 8978a72eaf..c42b7fbfb8 100644 --- a/tools/tryselect/docs/index.rst +++ b/tools/tryselect/docs/index.rst @@ -56,6 +56,41 @@ line instead, such as by using ``curl``: .. _attach-job-review: +Profiler symbols for try builds +------------------------------- + +When profiling a tryserver build, you don't get symbols by default. You have to trigger +an additional `upload-symbols` job on your try push so that the symbols are available +on the symbol server. + +You can trigger this job manually in the Treeherder UI, using "Add new jobs (Search)...". + +Assuming you want to profile a "shippable" build (recommended), follow these steps: + + 1. On the treeherder push, click the dropdown triangle in the top right corner. + 2. Select "Add new jobs (Search)..." + 3. Enter "shippable sym" in the search box and press enter. + 4. Important: Check the "Use full job list" checkbox. + 5. Pick the job for your try build. For Windows 64 bit builds, the job name is ``build-win64-shippable/opt-upload-symbols`` (this was written in February 2024). + 6. Click "Add selected", scroll down, and click "Trigger (1) Selected Jobs". + +Around ten minutes later, the symbols will be available on the symbol server, and profile symbolication will succeed. + +For other build types, choose the corresponding job for your build type. The job names all +end in ``-upload-symbols``, and share a prefix with the build job. + +.. image:: img/treeherder-trigger-symbols.png + +If you've already captured a profile from a try build before the symbols were available, you can +fix up the collected profile once the symbols are available. To do so, in the Firefox Profiler UI, +click the "Profile Info" button in the top right corner, and then click the "Re-symbolicate profile" +button in the panel. + +If you want to trigger the upload-symbol job when pushing to try, you can pick it in the list +when running ``./mach try fuzzy --full`` - the ``--full`` part is necessary. +The ``-upload-symbols`` task has a dependency on the build task, so you don't have to trigger +the build task separately if you do this. + Adding Try jobs to a Phabricator patch -------------------------------------- diff --git a/tools/tryselect/docs/selectors/index.rst b/tools/tryselect/docs/selectors/index.rst index be618202d6..6aba6838d9 100644 --- a/tools/tryselect/docs/selectors/index.rst +++ b/tools/tryselect/docs/selectors/index.rst @@ -16,6 +16,7 @@ These are the currently implemented try selectors: * :doc:`release `: Prepare a tree for doing a staging release. * :doc:`scriptworker `: Run scriptworker tasks against a recent release. * :doc:`compare `: Push two identical try jobs, one on your current commit and another of your choice +* :ref:`perf `: Select categories of performance tests to run, and produce a before/after compare view link. You can run them with: @@ -42,3 +43,4 @@ See selector specific options by running: Syntax Release Scriptworker + Perf diff --git a/tools/tryselect/selectors/chooser/templates/chooser.html b/tools/tryselect/selectors/chooser/templates/chooser.html index 4e009d94ac..1c3df39327 100644 --- a/tools/tryselect/selectors/chooser/templates/chooser.html +++ b/tools/tryselect/selectors/chooser/templates/chooser.html @@ -40,6 +40,17 @@ {% else %}
{% endif %} + {% if section.name == "perf" %} +
+

+ WARNING: The try chooser is no longer supported for selecting performance tests. + Please use + + ./mach try perf + . +

+
+ {% endif %} {% for label, meta in section.labels|dictsort %}