All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build
@ 2023-04-03 17:47 Ville Syrjala
  2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/perf: Stop generating silly C code Ville Syrjala
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Ville Syrjala @ 2023-04-03 17:47 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

The perf xml stuff generates terrible C code that is giving
gcc a big headache and leading to disgustingly long build 
times. Try to generate a bit more sensible code to speed
up the build.

Total build time change for the series:
$ ninja -Cbuild  clean
$ time ninja -Cbuild 
 ADL (4+8 cores):
  - real        1m18,244s
  + real        0m36,695s
 VLV (2 cores):
  - real        17m29.100s
  + real        9m44.268s

For comparison this is what I get if I skip all the perf xml
files apart from hsw:
 ADL:
  real  0m20,080s
 VLV
  real  7m3.045s

Thinking of further ways to reduce this... There are about a
thousand "Ext" metric sets. Are those *actually* useful or
could we just skip them? That would give us a total build 
time of:
 ADL:
  real  0m24,593s
 VLV:
  real  8m15.977s

Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Ville Syrjälä (3):
  lib/i915/perf: Stop generating silly C code
  lib/i915/perf: Stop making copies of the registers
  lib/i915/perf: Convert the metric counters to an array as well

 .../perf-configs/perf-metricset-codegen.py    | 81 ++++++++++++++-----
 .../perf-configs/perf-registers-codegen.py    | 30 +++----
 lib/i915/perf.h                               |  8 +-
 3 files changed, 78 insertions(+), 41 deletions(-)

-- 
2.39.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 1/3] lib/i915/perf: Stop generating silly C code
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
@ 2023-04-03 17:47 ` Ville Syrjala
  2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 2/3] lib/i915/perf: Stop making copies of the registers Ville Syrjala
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjala @ 2023-04-03 17:47 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Seems a bit weird to use use python to generate C code that
generates arrays of registers. Just generate those arrays
straight from python.

$ size -A meson-generated_.._i915_perf_registers_acmgt3.c
-.text                1737442      0
+.text                 257871      0
+.rodata               820776      0

$ du -h build/lib/libi915_perf.so.1.5
- 23M   build/lib/libi915_perf.so.1.5
+ 19M   build/lib/libi915_perf.so.1.5

And the change in build time:
$ touch lib/i915/perf-configs/perf-registers-codegen.py
$ time ninja -C build -j1

ADL:
- real  2m32,251s
+ real  1m8,984s

VLV:
- real	19m14.999s
+ real	8m3.277s

Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/i915/perf-configs/perf-registers-codegen.py | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/i915/perf-configs/perf-registers-codegen.py b/lib/i915/perf-configs/perf-registers-codegen.py
index 19f09d7a897c..bde3d14323d3 100644
--- a/lib/i915/perf-configs/perf-registers-codegen.py
+++ b/lib/i915/perf-configs/perf-registers-codegen.py
@@ -68,9 +68,19 @@ def generate_register_configs(set):
             set.gen.output_availability(set, availability, register_config.get('type') + ' register config')
             c.indent(4)
 
+        c("{")
+        c.indent(4)
+        c("static const struct intel_perf_register_prog _%s[] = {" % t)
+        c.indent(4)
         for register in register_config.findall('register'):
-            c("metric_set->%s[metric_set->n_%s++] = (struct intel_perf_register_prog) { .reg = %s, .val = %s };" %
-              (t, t, register.get('address'), register.get('value')))
+            c("{ .reg = %s, .val = %s }," %
+              (register.get('address'), register.get('value')))
+        c.outdent(4)
+        c("};")
+        c("memcpy(metric_set->%s, _%s, sizeof(_%s));" % (t, t, t))
+        c("metric_set->n_%s = sizeof(_%s) / sizeof(_%s[0]);" % (t, t, t))
+        c.outdent(4)
+        c("}")
 
         if availability:
             c.outdent(4)
@@ -146,6 +156,7 @@ def main():
     c(copyright)
     c("\n")
     c("#include <stdlib.h>")
+    c("#include <string.h>")
     c("\n")
     c("#include \"%s\"" % header_file)
     c("#include \"i915/perf.h\"")
-- 
2.39.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 2/3] lib/i915/perf: Stop making copies of the registers
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
  2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/perf: Stop generating silly C code Ville Syrjala
@ 2023-04-03 17:47 ` Ville Syrjala
  2023-04-03 17:48 ` [igt-dev] [PATCH i-g-t 3/3] lib/i915/perf: Convert the metric counters to an array as well Ville Syrjala
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjala @ 2023-04-03 17:47 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Do these register things even need to be copied around like
this at all? Just make the pointers const and point them at
the static const data?

Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 .../perf-configs/perf-registers-codegen.py    | 19 +------------------
 lib/i915/perf.h                               |  6 +++---
 2 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/lib/i915/perf-configs/perf-registers-codegen.py b/lib/i915/perf-configs/perf-registers-codegen.py
index bde3d14323d3..a2efb8a31440 100644
--- a/lib/i915/perf-configs/perf-registers-codegen.py
+++ b/lib/i915/perf-configs/perf-registers-codegen.py
@@ -44,20 +44,6 @@ def generate_register_configs(set):
     c("{")
     c.indent(4)
 
-    # allocate memory
-    total_n_registers = {}
-    register_configs = set.findall('register_config')
-    for register_config in register_configs:
-        t = register_types[register_config.get('type')]
-        if t not in total_n_registers:
-            total_n_registers[t] = len(register_config.findall('register'))
-        else:
-            total_n_registers[t] += len(register_config.findall('register'))
-
-    for reg in total_n_registers:
-        c("metric_set->{0} = calloc({1}, sizeof(struct intel_perf_register_prog));".format(reg, total_n_registers[reg]))
-    c("\n")
-
     # fill in register/values
     register_configs = set.findall('register_config')
     for register_config in register_configs:
@@ -77,7 +63,7 @@ def generate_register_configs(set):
               (register.get('address'), register.get('value')))
         c.outdent(4)
         c("};")
-        c("memcpy(metric_set->%s, _%s, sizeof(_%s));" % (t, t, t))
+        c("metric_set->%s = _%s;" % (t, t))
         c("metric_set->n_%s = sizeof(_%s) / sizeof(_%s[0]);" % (t, t, t))
         c.outdent(4)
         c("}")
@@ -155,9 +141,6 @@ def main():
 
     c(copyright)
     c("\n")
-    c("#include <stdlib.h>")
-    c("#include <string.h>")
-    c("\n")
     c("#include \"%s\"" % header_file)
     c("#include \"i915/perf.h\"")
 
diff --git a/lib/i915/perf.h b/lib/i915/perf.h
index df5b6b96ef1d..6b139f687cca 100644
--- a/lib/i915/perf.h
+++ b/lib/i915/perf.h
@@ -256,13 +256,13 @@ struct intel_perf_metric_set {
 	int c_offset;
 	int perfcnt_offset;
 
-	struct intel_perf_register_prog *b_counter_regs;
+	const struct intel_perf_register_prog *b_counter_regs;
 	uint32_t n_b_counter_regs;
 
-	struct intel_perf_register_prog *mux_regs;
+	const struct intel_perf_register_prog *mux_regs;
 	uint32_t n_mux_regs;
 
-	struct intel_perf_register_prog *flex_regs;
+	const struct intel_perf_register_prog *flex_regs;
 	uint32_t n_flex_regs;
 
 	struct igt_list_head link;
-- 
2.39.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 3/3] lib/i915/perf: Convert the metric counters to an array as well
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
  2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/perf: Stop generating silly C code Ville Syrjala
  2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 2/3] lib/i915/perf: Stop making copies of the registers Ville Syrjala
@ 2023-04-03 17:48 ` Ville Syrjala
  2023-04-03 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915/perf: Speed up the build Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjala @ 2023-04-03 17:48 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

The metric counter codegen stuff can also be converted
to chunky arrays to make life easier for the C compiler.

This is more tricky that the register stuff though:
- we have a counter->metric_set backpointer
- the availability needs to be checked for each counter
- intel_perf_add_logical_counter() needs to be called for each counter

So I kept the copy for now, but now we copy from the array
elements instead of populating the thing with code. Could
perhaps get rid of the copy by splitting the counter struct
into const and non-const parts and just pointing to the
array elements instead of copying. But that is left as an
excercise for the reader.

The availability thing I converted to a function pointer.
Might not be ideal since it also prevents putting the array
into .rodata and instead it ends up in .data.rel.ro which
means more work for the dynamic linker. Side note: lambda
would sure be nice to have here...

$ size -A meson-generated_.._i915_perf_metrics_acmgt3.c.o
-.text                1228003      0
+.text                 476657      0
+.data.rel.ro          798816      0

And this is the change in build time:
$ touch lib/i915/perf-configs/perf-metricset-codegen.py
$ time ninja -Cbuild -j1

ADL:
- real	0m59,664s
+ real	0m36,788s

VLV:
- real	8m3.277s
+ real	4m1.494s

Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 .../perf-configs/perf-metricset-codegen.py    | 81 ++++++++++++++-----
 lib/i915/perf.h                               |  2 +
 2 files changed, 63 insertions(+), 20 deletions(-)

diff --git a/lib/i915/perf-configs/perf-metricset-codegen.py b/lib/i915/perf-configs/perf-metricset-codegen.py
index 8b2c5d7b2e65..57d777bcb13a 100644
--- a/lib/i915/perf-configs/perf-metricset-codegen.py
+++ b/lib/i915/perf-configs/perf-metricset-codegen.py
@@ -39,6 +39,22 @@ semantic_type_map = {
 def output_units(unit):
     return unit.replace(' ', '_').upper()
 
+def availability_func_name(set, counter):
+    return set.gen.chipset + "_" + set.underscore_name + "_" + counter.get('symbol_name') + "_availability"
+
+def output_availability_funcs(set, counter):
+    availability = counter.get('availability')
+    if availability:
+        c("static bool " + availability_func_name(set, counter) + "(const struct intel_perf *perf) {")
+        c.indent(4)
+        set.gen.output_availability(set, availability, counter.get('name'))
+        c.indent(4)
+        c("return true;")
+        c.outdent(4)
+        c("}")
+        c("return false;")
+        c.outdent(4)
+        c("}")
 
 def output_counter_report(set, counter):
     data_type = counter.get('data_type')
@@ -56,26 +72,22 @@ def output_counter_report(set, counter):
 
     c("\n")
 
+    c("{")
+    c.indent(4)
+    c(".name = \"{0}\",\n".format(counter.get('name')))
+    c(".symbol_name = \"{0}\",\n".format(counter.get('symbol_name')))
+    c(".desc = \"{0}\",\n".format(counter.get('description')))
+    c(".type = INTEL_PERF_LOGICAL_COUNTER_TYPE_{0},\n".format(semantic_type_uc))
+    c(".storage = INTEL_PERF_LOGICAL_COUNTER_STORAGE_{0},\n".format(data_type_uc))
+    c(".unit = INTEL_PERF_LOGICAL_COUNTER_UNIT_{0},\n".format(output_units(counter.get('units'))))
+    c(".read_{0} = {1},\n".format(data_type, set.read_funcs["$" + counter.get('symbol_name')]))
+    c(".max_{0} = {1},\n".format(data_type, set.max_funcs["$" + counter.get('symbol_name')]))
+    c(".group = \"{0}\",\n".format(counter.get('mdapi_group')))
     availability = counter.get('availability')
     if availability:
-        set.gen.output_availability(set, availability, counter.get('name'))
-        c.indent(4)
-
-    c("counter = &metric_set->counters[metric_set->n_counters++];\n")
-    c("counter->metric_set = metric_set;\n")
-    c("counter->name = \"{0}\";\n".format(counter.get('name')))
-    c("counter->symbol_name = \"{0}\";\n".format(counter.get('symbol_name')));
-    c("counter->desc = \"{0}\";\n".format(counter.get('description')))
-    c("counter->type = INTEL_PERF_LOGICAL_COUNTER_TYPE_{0};\n".format(semantic_type_uc))
-    c("counter->storage = INTEL_PERF_LOGICAL_COUNTER_STORAGE_{0};\n".format(data_type_uc))
-    c("counter->unit = INTEL_PERF_LOGICAL_COUNTER_UNIT_{0};\n".format(output_units(counter.get('units'))))
-    c("counter->read_{0} = {1};\n".format(data_type, set.read_funcs["$" + counter.get('symbol_name')]))
-    c("counter->max_{0} = {1};\n".format(data_type, set.max_funcs["$" + counter.get('symbol_name')]))
-    c("intel_perf_add_logical_counter(perf, counter, \"{0}\");\n".format(counter.get('mdapi_group')))
-
-    if availability:
-        c.outdent(4)
-        c("}\n")
+        c(".availability = {0},\n".format(availability_func_name(set, counter)))
+    c.outdent(4)
+    c("},")
 
 
 def generate_metric_sets(args, gen):
@@ -97,6 +109,13 @@ def generate_metric_sets(args, gen):
     # Print out all set registration functions for each set in each
     # generation.
     for set in gen.sets:
+        counters = sorted(set.counters, key=lambda k: k.get('symbol_name'))
+
+        c("\n")
+
+        for counter in counters:
+          output_availability_funcs(set, counter)
+
         c("\nstatic void\n")
         c(gen.chipset + "_add_" + set.underscore_name + "_metric_set(struct intel_perf *perf)")
         c("{\n")
@@ -105,8 +124,6 @@ def generate_metric_sets(args, gen):
         c("struct intel_perf_metric_set *metric_set;\n")
         c("struct intel_perf_logical_counter *counter;\n\n")
 
-        counters = sorted(set.counters, key=lambda k: k.get('symbol_name'))
-
         c("metric_set = calloc(1, sizeof(*metric_set));\n")
         c("metric_set->name = \"" + set.name + "\";\n")
         c("metric_set->symbol_name = \"" + set.symbol_name + "\";\n")
@@ -171,9 +188,31 @@ def generate_metric_sets(args, gen):
         c("intel_perf_add_metric_set(perf, metric_set);");
         c("\n")
 
+        c("{")
+        c.indent(4)
+        c("static const struct intel_perf_logical_counter _counters[] = {")
+        c.indent(4)
+
         for counter in counters:
             output_counter_report(set, counter)
+        c.outdent(4)
+        c("};")
+        c("int i;")
 
+        c("for (i = 0; i < sizeof(_counters) / sizeof(_counters[0]); i++) {")
+        c.indent(4)
+        c("if (_counters[i].availability && !_counters[i].availability(perf))")
+        c.indent(4)
+        c("continue;")
+        c.outdent(4)
+        c("counter = &metric_set->counters[metric_set->n_counters++];")
+        c("*counter = _counters[i];")
+        c("counter->metric_set = metric_set;")
+        c("intel_perf_add_logical_counter(perf, counter, counter->group);")
+        c.outdent(4)
+        c("}")
+        c.outdent(4)
+        c("}")
         c("\nassert(metric_set->n_counters <= {0});\n".format(len(counters)));
 
         c.outdent(4)
@@ -246,6 +285,8 @@ def main():
         #ifndef %s
         #define %s
 
+        #include <string.h>
+
         #include "i915/perf.h"
 
         """ % (header_define, header_define)))
diff --git a/lib/i915/perf.h b/lib/i915/perf.h
index 6b139f687cca..8a71ac635e78 100644
--- a/lib/i915/perf.h
+++ b/lib/i915/perf.h
@@ -207,6 +207,8 @@ struct intel_perf_logical_counter {
 	const char *name;
 	const char *symbol_name;
 	const char *desc;
+	const char *group;
+	bool (*availability)(const struct intel_perf *perf);
 	intel_perf_logical_counter_storage_t storage;
 	intel_perf_logical_counter_type_t type;
 	intel_perf_logical_counter_unit_t unit;
-- 
2.39.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for lib/i915/perf: Speed up the build
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
                   ` (2 preceding siblings ...)
  2023-04-03 17:48 ` [igt-dev] [PATCH i-g-t 3/3] lib/i915/perf: Convert the metric counters to an array as well Ville Syrjala
@ 2023-04-03 19:07 ` Patchwork
  2023-04-04  1:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2023-04-04  7:59 ` [igt-dev] [PATCH i-g-t 0/3] " Lionel Landwerlin
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-04-03 19:07 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 5981 bytes --]

== Series Details ==

Series: lib/i915/perf: Speed up the build
URL   : https://patchwork.freedesktop.org/series/116036/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12961 -> IGTPW_8741
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html

Participating hosts (36 -> 37)
------------------------------

  Additional (2): fi-kbl-soraka fi-pnv-d510 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8741 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - bat-rpls-1:         [PASS][1] -> [ABORT][2] ([i915#6687] / [i915#7978])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613]) +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][5] ([i915#5334] / [i915#7872])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-adln-1:         [PASS][6] -> [INCOMPLETE][7] ([i915#7609])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-adln-1/igt@i915_selftest@live@gt_lrc.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-adln-1/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][8] ([i915#1886])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - fi-ivb-3770:        [PASS][9] -> [INCOMPLETE][10] ([i915#7913])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][11] ([fdo#109271]) +16 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][12] ([fdo#109271]) +38 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  
#### Possible fixes ####

  * igt@i915_pm_rps@basic-api:
    - bat-dg2-11:         [FAIL][13] ([i915#8308]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-dg2-11/igt@i915_pm_rps@basic-api.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-dg2-11/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-1:         [DMESG-FAIL][15] ([i915#6367]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-rpls-1/igt@i915_selftest@live@slpc.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1:
    - bat-dg2-8:          [FAIL][17] ([i915#7932]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1.html

  
#### Warnings ####

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         [DMESG-FAIL][19] ([i915#6367] / [i915#7913]) -> [DMESG-FAIL][20] ([i915#6997] / [i915#7913])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/bat-rpls-2/igt@i915_selftest@live@slpc.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/bat-rpls-2/igt@i915_selftest@live@slpc.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7233 -> IGTPW_8741

  CI-20190529: 20190529
  CI_DRM_12961: 82f1e99798a184af2c21c9c8748f3fba4bdc4556 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8741: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html
  IGT_7233: 716520b469a2745e1882780f2aabbc88eb19332c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

-igt@kms_dsc@dsc-with-invalid-bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html

[-- Attachment #2: Type: text/html, Size: 7284 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for lib/i915/perf: Speed up the build
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
                   ` (3 preceding siblings ...)
  2023-04-03 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915/perf: Speed up the build Patchwork
@ 2023-04-04  1:27 ` Patchwork
  2023-04-04  7:59 ` [igt-dev] [PATCH i-g-t 0/3] " Lionel Landwerlin
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-04-04  1:27 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 13687 bytes --]

== Series Details ==

Series: lib/i915/perf: Speed up the build
URL   : https://patchwork.freedesktop.org/series/116036/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12961_full -> IGTPW_8741_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html

Participating hosts (8 -> 7)
------------------------------

  Missing    (1): shard-rkl0 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8741_full:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - {shard-rkl}:        [SKIP][1] ([i915#4070]) -> [SKIP][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-rkl-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-2:
    - {shard-rkl}:        [PASS][3] -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-rkl-6/igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-2.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-rkl-4/igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-2.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - {shard-rkl}:        [PASS][5] -> [ABORT][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-rkl-1/igt@kms_rotation_crc@primary-rotation-270.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-rkl-2/igt@kms_rotation_crc@primary-rotation-270.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12961_full and IGTPW_8741_full:

### New IGT tests (2) ###

  * igt@kms_cursor_edge_walk@128x128-right-edge@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_edge_walk@64x64-top-edge@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_8741_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [PASS][7] -> [FAIL][8] ([i915#2846])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-glk1/igt@gem_exec_fair@basic-deadline.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-glk3/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-glk:          [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-glk3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-glk5/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-snb:          [PASS][11] -> [INCOMPLETE][12] ([i915#4528] / [i915#4817])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-snb5/igt@i915_suspend@basic-s3-without-i915.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-snb7/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@forcewake:
    - shard-snb:          [PASS][13] -> [INCOMPLETE][14] ([i915#4817])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-snb4/igt@i915_suspend@forcewake.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-snb5/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#2346])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1:
    - shard-apl:          [PASS][17] -> [FAIL][18] ([i915#79])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-apl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - {shard-dg1}:        [FAIL][19] ([i915#5784]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-dg1-14/igt@gem_eio@unwedge-stress.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-dg1-18/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - {shard-rkl}:        [FAIL][21] ([i915#2842]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-rkl-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-rkl-6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][23] ([fdo#109271]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-apl2/igt@i915_pm_dc@dc9-dpms.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-apl1/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@dpms-mode-unset-lpsp:
    - {shard-rkl}:        [SKIP][25] ([i915#1397]) -> [PASS][26] +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12961/shard-rkl-2/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8229]: https://gitlab.freedesktop.org/drm/intel/issues/8229
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7233 -> IGTPW_8741
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12961: 82f1e99798a184af2c21c9c8748f3fba4bdc4556 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8741: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html
  IGT_7233: 716520b469a2745e1882780f2aabbc88eb19332c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8741/index.html

[-- Attachment #2: Type: text/html, Size: 8521 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build
  2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
                   ` (4 preceding siblings ...)
  2023-04-04  1:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2023-04-04  7:59 ` Lionel Landwerlin
  5 siblings, 0 replies; 7+ messages in thread
From: Lionel Landwerlin @ 2023-04-04  7:59 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 03/04/2023 20:47, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The perf xml stuff generates terrible C code that is giving
> gcc a big headache and leading to disgustingly long build
> times. Try to generate a bit more sensible code to speed
> up the build.
>
> Total build time change for the series:
> $ ninja -Cbuild  clean
> $ time ninja -Cbuild
>   ADL (4+8 cores):
>    - real        1m18,244s
>    + real        0m36,695s
>   VLV (2 cores):
>    - real        17m29.100s
>    + real        9m44.268s
>
> For comparison this is what I get if I skip all the perf xml
> files apart from hsw:
>   ADL:
>    real  0m20,080s
>   VLV
>    real  7m3.045s
>
> Thinking of further ways to reduce this... There are about a
> thousand "Ext" metric sets. Are those *actually* useful or
> could we just skip them? That would give us a total build
> time of:
>   ADL:
>    real  0m24,593s
>   VLV:
>    real  8m15.977s
>
> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>


>
> Ville Syrjälä (3):
>    lib/i915/perf: Stop generating silly C code
>    lib/i915/perf: Stop making copies of the registers
>    lib/i915/perf: Convert the metric counters to an array as well
>
>   .../perf-configs/perf-metricset-codegen.py    | 81 ++++++++++++++-----
>   .../perf-configs/perf-registers-codegen.py    | 30 +++----
>   lib/i915/perf.h                               |  8 +-
>   3 files changed, 78 insertions(+), 41 deletions(-)
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-04-04  7:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-03 17:47 [igt-dev] [PATCH i-g-t 0/3] lib/i915/perf: Speed up the build Ville Syrjala
2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/perf: Stop generating silly C code Ville Syrjala
2023-04-03 17:47 ` [igt-dev] [PATCH i-g-t 2/3] lib/i915/perf: Stop making copies of the registers Ville Syrjala
2023-04-03 17:48 ` [igt-dev] [PATCH i-g-t 3/3] lib/i915/perf: Convert the metric counters to an array as well Ville Syrjala
2023-04-03 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915/perf: Speed up the build Patchwork
2023-04-04  1:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-04-04  7:59 ` [igt-dev] [PATCH i-g-t 0/3] " Lionel Landwerlin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.