Module: Mesa
Branch: main
Commit: 4dd3e755eabc873d62d8fcec6bc65f369fd95d1f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4dd3e755eabc873d62d8fcec6bc65f369fd95d1f

Author: Lionel Landwerlin <[email protected]>
Date:   Sun May 22 16:00:40 2022 +0300

intel/ds: add INTEL_GPU_TRACEPOINT envvar to toggle tracepoints

Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Emma Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16655>

---

 docs/u_trace.rst                  |  3 +++
 src/intel/ds/intel_driver_ds.cc   |  1 +
 src/intel/ds/intel_tracepoints.py | 19 +++++++++++++++++--
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/docs/u_trace.rst b/docs/u_trace.rst
index 9bbeb153cdc..b952108f471 100644
--- a/docs/u_trace.rst
+++ b/docs/u_trace.rst
@@ -68,3 +68,6 @@ u_trace is controlled by environment variables:
       * - Turnip
         - .. envvar:: TU_GPU_TRACEPOINT
         - ``src/freedreno/vulkan/tu_tracepoints.py``
+      * - Anv
+        - .. envvar:: INTEL_GPU_TRACEPOINT
+        - ``src/freedreno/vulkan/intel_tracepoints.py``
diff --git a/src/intel/ds/intel_driver_ds.cc b/src/intel/ds/intel_driver_ds.cc
index ca93d481d79..1d2bbfbf9a6 100644
--- a/src/intel/ds/intel_driver_ds.cc
+++ b/src/intel/ds/intel_driver_ds.cc
@@ -588,6 +588,7 @@ intel_driver_ds_init(void)
 {
    call_once(&intel_driver_ds_once_flag,
              intel_driver_ds_init_once);
+   intel_gpu_tracepoint_config_variable();
 }
 
 void
diff --git a/src/intel/ds/intel_tracepoints.py 
b/src/intel/ds/intel_tracepoints.py
index 71f13e9b097..d32d12abe8d 100644
--- a/src/intel/ds/intel_tracepoints.py
+++ b/src/intel/ds/intel_tracepoints.py
@@ -24,6 +24,12 @@
 import argparse
 import sys
 
+# List of the default tracepoints enabled. By default most tracepoints are
+# enabled, set tp_default=False to disable them by default.
+#
+# Currently only stall is disabled by default
+intel_default_tps = []
+
 #
 # Tracepoint definitions:
 #
@@ -38,10 +44,16 @@ def define_tracepoints(args):
     Header('blorp/blorp_priv.h', scope=HeaderScope.HEADER)
     Header('ds/intel_driver_ds.h', scope=HeaderScope.HEADER)
 
-    def begin_end_tp(name, tp_args=[], tp_struct=None, tp_print=None, 
end_pipelined=True):
+    def begin_end_tp(name, tp_args=[], tp_struct=None, tp_print=None,
+                     tp_default_enabled=True, end_pipelined=True):
+        global intel_default_tps
+        if tp_default_enabled:
+            intel_default_tps.append(name)
         Tracepoint('intel_begin_{0}'.format(name),
+                   toggle_name=name,
                    tp_perfetto='intel_ds_begin_{0}'.format(name))
         Tracepoint('intel_end_{0}'.format(name),
+                   toggle_name=name,
                    args=tp_args,
                    tp_struct=tp_struct,
                    tp_perfetto='intel_ds_end_{0}'.format(name),
@@ -176,6 +188,7 @@ def define_tracepoints(args):
                  tp_struct=[Arg(type='uint32_t', name='flags', 
var='decode_cb(flags)', c_format='0x%x'),
                             Arg(type='const char *', name='reason', 
var='reason', c_format='%s'),],
                  tp_print=stall_args(stall_flags),
+                 tp_default_enabled=False,
                  end_pipelined=False)
 
 
@@ -185,7 +198,9 @@ def generate_code(args):
 
     utrace_generate(cpath=args.utrace_src, hpath=args.utrace_hdr,
                     ctx_param='struct intel_ds_device *dev',
-                    need_cs_param=False)
+                    need_cs_param=False,
+                    trace_toggle_name='intel_gpu_tracepoint',
+                    trace_toggle_defaults=intel_default_tps)
     utrace_generate_perfetto_utils(hpath=args.perfetto_hdr)
 
 

Reply via email to