Mesa (staging/21.3): intel/perf: Use slimmer intel_perf_query_counter_data struct

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 10 06:58:50 UTC 2022


Module: Mesa
Branch: staging/21.3
Commit: 39818465c16eeab5c88762edfd2fa9ad315cf91c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=39818465c16eeab5c88762edfd2fa9ad315cf91c

Author: Matt Turner <mattst88 at gmail.com>
Date:   Thu Mar  3 12:24:02 2022 -0800

intel/perf: Use slimmer intel_perf_query_counter_data struct

intel_perf_query_counter contains fields for things we can't or don't
want to store in our static data (like runtime-determined max values) or
oa_read_counter function pointers which are dependent on the GPU gen and
would make deduplication very ineffective.

Cuts 16 KiB from iris_dri.so and libvulkan_intel.so.

   text    data     bss     dec     hex filename
 926811   43200       0  970011   ecd1b meson-generated_.._intel_perf_metrics.c.o (before)
 926811   25920       0  952731   e899b meson-generated_.._intel_perf_metrics.c.o (after)

   text    data     bss     dec     hex filename
14190852 408908  210004 14809764 e1faa4 iris_dri.so (before)
14190852 391628  210004 14792484 e1b724 iris_dri.so (after)

   text    data     bss     dec     hex filename
8184097  257464   22820 8464381  8127fd libvulkan_intel.so (before)
8184097  240184   22820 8447101  80e47d libvulkan_intel.so (after)

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
(cherry picked from commit df5e743c80ce96f510cc6d4d6b7b52fb8ae0eb3e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16405>

---

 src/intel/perf/gen_perf.py        |  4 ++--
 src/intel/perf/intel_perf_setup.h | 10 ++++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/intel/perf/gen_perf.py b/src/intel/perf/gen_perf.py
index f4e766f2c2d..b7ffbf88aea 100644
--- a/src/intel/perf/gen_perf.py
+++ b/src/intel/perf/gen_perf.py
@@ -736,7 +736,7 @@ def main():
                 output_counter_max(gen, set, counter)
 
     c("\n")
-    c("static const struct intel_perf_query_counter counters[] = {\n")
+    c("static const struct intel_perf_query_counter_data counters[] = {\n")
     c_indent(3)
 
     counter_to_idx = collections.OrderedDict()
@@ -762,7 +762,7 @@ def main():
                                      int counter_idx, size_t offset,
                                      uint64_t raw_max, oa_counter_read_func oa_counter_read_uint64)
         {
-           const struct intel_perf_query_counter *counter = &counters[counter_idx];
+           const struct intel_perf_query_counter_data *counter = &counters[counter_idx];
 
            dest->name = counter->name;
            dest->desc = counter->desc;
diff --git a/src/intel/perf/intel_perf_setup.h b/src/intel/perf/intel_perf_setup.h
index 8ba0d57ed3f..1f31c18c2d5 100644
--- a/src/intel/perf/intel_perf_setup.h
+++ b/src/intel/perf/intel_perf_setup.h
@@ -72,4 +72,14 @@ bdw_query_alloc(struct intel_perf_config *perf, int ncounters)
    return query;
 }
 
+struct intel_perf_query_counter_data {
+   const char *name;
+   const char *desc;
+   const char *symbol_name;
+   const char *category;
+   enum intel_perf_counter_type type;
+   enum intel_perf_counter_data_type data_type;
+   enum intel_perf_counter_units units;
+};
+
 #endif /* INTEL_PERF_SETUP_H */



More information about the mesa-commit mailing list