All of lore.kernel.org
 help / color / mirror / Atom feed
From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
To: <igt-dev@lists.freedesktop.org>,
	Lionel G Landwerlin <lionel.g.landwerlin@intel.com>,
	Ashutosh Dixit <ashutosh.dixit@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t v6 29/36] i915/perf: update import script
Date: Mon, 10 Oct 2022 16:00:08 -0700	[thread overview]
Message-ID: <Y0Sj+MAEwOVNe94G@unerlige-ril> (raw)
In-Reply-To: <20221010214215.5378-30-umesh.nerlige.ramappa@intel.com>

On Mon, Oct 10, 2022 at 09:42:08PM +0000, Umesh Nerlige Ramappa wrote:
>From: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
>
>Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

>---
> lib/i915/perf-configs/mdapi-xml-convert.py | 180 ++++++++++++---------
> lib/i915/perf-configs/oa-bdw.xml           |   2 +-
> lib/i915/perf-configs/oa_guid_registry.py  |  15 +-
> lib/i915/perf-configs/update-guids.py      |  23 +--
> lib/i915/perf.h                            |   1 +
> 5 files changed, 131 insertions(+), 90 deletions(-)
>
>diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
>index 7b5be901..ba053ae3 100755
>--- a/lib/i915/perf-configs/mdapi-xml-convert.py
>+++ b/lib/i915/perf-configs/mdapi-xml-convert.py
>@@ -45,6 +45,8 @@ import sys
> import time
> import uuid
>
>+import codegen
>+
> import xml.etree.ElementTree as et
> import xml.sax.saxutils as saxutils
>
>@@ -54,6 +56,55 @@ import oa_guid_registry as oa_registry
> # MDAPI configs include writes to some non-config registers,
> # thus the blacklists...
>
>+hsw_chipset_params = {
>+    'a_offset': 12,
>+    'b_offset': 192,
>+    'c_offset': 224,
>+    'oa_report_size': 256,
>+    'registers': {
>+        # TODO extend the symbol table for nicer output...
>+        0x2710: { 'name': 'OASTARTTRIG1' },
>+        0x2714: { 'name': 'OASTARTTRIG1' },
>+        0x2718: { 'name': 'OASTARTTRIG1' },
>+        0x271c: { 'name': 'OASTARTTRIG1' },
>+        0x2720: { 'name': 'OASTARTTRIG1' },
>+        0x2724: { 'name': 'OASTARTTRIG6' },
>+        0x2728: { 'name': 'OASTARTTRIG7' },
>+        0x272c: { 'name': 'OASTARTTRIG8' },
>+        0x2740: { 'name': 'OAREPORTTRIG1' },
>+        0x2744: { 'name': 'OAREPORTTRIG2' },
>+        0x2748: { 'name': 'OAREPORTTRIG3' },
>+        0x274c: { 'name': 'OAREPORTTRIG4' },
>+        0x2750: { 'name': 'OAREPORTTRIG5' },
>+        0x2754: { 'name': 'OAREPORTTRIG6' },
>+        0x2758: { 'name': 'OAREPORTTRIG7' },
>+        0x275c: { 'name': 'OAREPORTTRIG8' },
>+        0x2770: { 'name': 'OACEC0_0' },
>+        0x2774: { 'name': 'OACEC0_1' },
>+        0x2778: { 'name': 'OACEC1_0' },
>+        0x277c: { 'name': 'OACEC1_1' },
>+        0x2780: { 'name': 'OACEC2_0' },
>+        0x2784: { 'name': 'OACEC2_1' },
>+        0x2788: { 'name': 'OACEC3_0' },
>+        0x278c: { 'name': 'OACEC3_1' },
>+        0x2790: { 'name': 'OACEC4_0' },
>+        0x2794: { 'name': 'OACEC4_1' },
>+        0x2798: { 'name': 'OACEC5_0' },
>+        0x279c: { 'name': 'OACEC5_1' },
>+        0x27a0: { 'name': 'OACEC6_0' },
>+        0x27a4: { 'name': 'OACEC6_1' },
>+        0x27a8: { 'name': 'OACEC7_0' },
>+        0x27ac: { 'name': 'OACEC7_1' },
>+    },
>+    'config_reg_blacklist': {
>+        0x2364, # OASTATUS1 register
>+    },
>+    'register_offsets': {
>+        0x1f0: 'PERFCNT 0',
>+        0x1f8: 'PERFCNT 1',
>+    },
>+}
>+
> gen8_11_chipset_params = {
>     'a_offset': 16,
>     'b_offset': 192,
>@@ -83,50 +134,7 @@ xehpsdv_chipset_params = {
> }
>
> chipsets = {
>-    'HSW': {
>-        'a_offset': 12,
>-        'b_offset': 192,
>-        'c_offset': 224,
>-        'oa_report_size': 256,
>-        'registers': {
>-            # TODO extend the symbol table for nicer output...
>-                0x2710: { 'name': 'OASTARTTRIG1' },
>-            0x2714: { 'name': 'OASTARTTRIG1' },
>-            0x2718: { 'name': 'OASTARTTRIG1' },
>-            0x271c: { 'name': 'OASTARTTRIG1' },
>-            0x2720: { 'name': 'OASTARTTRIG1' },
>-            0x2724: { 'name': 'OASTARTTRIG6' },
>-            0x2728: { 'name': 'OASTARTTRIG7' },
>-            0x272c: { 'name': 'OASTARTTRIG8' },
>-            0x2740: { 'name': 'OAREPORTTRIG1' },
>-            0x2744: { 'name': 'OAREPORTTRIG2' },
>-            0x2748: { 'name': 'OAREPORTTRIG3' },
>-            0x274c: { 'name': 'OAREPORTTRIG4' },
>-            0x2750: { 'name': 'OAREPORTTRIG5' },
>-            0x2754: { 'name': 'OAREPORTTRIG6' },
>-            0x2758: { 'name': 'OAREPORTTRIG7' },
>-            0x275c: { 'name': 'OAREPORTTRIG8' },
>-            0x2770: { 'name': 'OACEC0_0' },
>-            0x2774: { 'name': 'OACEC0_1' },
>-            0x2778: { 'name': 'OACEC1_0' },
>-            0x277c: { 'name': 'OACEC1_1' },
>-            0x2780: { 'name': 'OACEC2_0' },
>-            0x2784: { 'name': 'OACEC2_1' },
>-            0x2788: { 'name': 'OACEC3_0' },
>-            0x278c: { 'name': 'OACEC3_1' },
>-            0x2790: { 'name': 'OACEC4_0' },
>-            0x2794: { 'name': 'OACEC4_1' },
>-            0x2798: { 'name': 'OACEC5_0' },
>-            0x279c: { 'name': 'OACEC5_1' },
>-            0x27a0: { 'name': 'OACEC6_0' },
>-            0x27a4: { 'name': 'OACEC6_1' },
>-            0x27a8: { 'name': 'OACEC7_0' },
>-            0x27ac: { 'name': 'OACEC7_1' },
>-        },
>-        'config_reg_blacklist': {
>-            0x2364, # OASTATUS1 register
>-        },
>-    },
>+    'HSW': hsw_chipset_params,
>     'BDW': gen8_11_chipset_params,
>     'CHV': gen8_11_chipset_params,
>     'SKL': gen8_11_chipset_params,
>@@ -141,8 +149,11 @@ chipsets = {
>     'RKL': gen8_11_chipset_params,
>     'DG1': gen8_11_chipset_params,
>     'ADL': gen8_11_chipset_params,
>+    'ACM': xehpsdv_chipset_params,
> }
>
>+xehp_plus = ( 'ACM', )
>+
> register_types = { 'OA', 'NOA', 'FLEX', 'PM' }
>
> default_set_blacklist = { "RenderDX1x", # TODO: rename to something non 'DX'
>@@ -158,23 +169,11 @@ counter_blacklist = {
>                          # investiguate how to get this value.
> }
>
>-sys_vars = { "EuCoresTotalCount",
>-             "EuSlicesTotalCount",
>-             "SamplersTotalCount",
>-             "EuThreadsCount",
>-             "GpuMinFrequencyMHz",
>-             "GpuMaxFrequencyMHz",
>-             "GpuTimestampFrequency",
>-             "SliceMask",
>-             "SubsliceMask",
>-             "EuSubslicesTotalCount",
>-             "EuDualSubslicesTotalCount",
>-           }
>-
> def underscore(name):
>     s = re.sub('MHz', 'Mhz', name)
>     s = re.sub('\.', '_', s)
>     s = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', s)
>+    s = re.sub('#', '_', s)
>     return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s).lower()
>
> def print_err(*args):
>@@ -215,7 +214,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>                 assert 0
>         elif offset < b_offset:
>             a_cnt_offset = int((offset - a_offset) / 4)
>-            if chipset == "XEHPSDV":
>+            if chipset in xehp_plus:
>                 # Most A counters are in a contiguous array, except
>                 # this A37.
>                 if a_cnt_offset == 42:
>@@ -246,7 +245,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>                 return "C " + str(idx - 54) + " READ"
>             else:
>                 return "{0} READ".format(read_value(chipset, offset))
>-        elif chipset == "XEHPSDV":
>+        elif chipset in xehp_plus:
>             # For XEHPSDV the array of accumulated counters is
>             # assumed to start with a GPU_TIME then GPU_CLOCK,
>             # then 38 A counters, then 8 B counters and finally
>@@ -354,10 +353,38 @@ def strip_dx_apis(text):
>
>     return stripped.strip()
>
>+def add_gpu_core_clocks_if_missing(metric_set, counters, counter_deps):
>+    if len(counters) < 1:
>+        return
>+
>+    for name,element in counters.items():
>+        if name == 'GpuCoreClocks':
>+            return
>+
>+    print_err("WARNING: add missing GpuCoreClocks counter for MetricSets=\"{0}\"".format(metric_set.get('ShortName')))
>+    counter = et.SubElement(metric_set, 'Metric')
>+    counter.set("SymbolName", "GpuCoreClocks")
>+    counter.set("SignalName", "oa.fixed")
>+    counter.set("ShortName", "GPU Core Clocks")
>+    counter.set("LongName", "The total number of GPU core clocks elapsed during the measurement.")
>+    counter.set("Group", "GPU")
>+    counter.set("UsageFlags", "Tier1 Frame Batch Draw")
>+    counter.set("MetricType", "EVENT")
>+    counter.set("ResultType", "UINT64")
>+    counter.set("MetricUnits", "cycles")
>+    counter.set("HWUnitType", "GPU")
>+    counter.set("SnapshotReportReadEquation", "dw@0x0c")
>+    counter.set("SnapshotReportDeltaFunction", "DELTA 32")
>+    counter.set("DeltaReportReadEquation", "qw@0x08")
>+    counter.set("NormalizationEquation", "")
>+
>+    counters["GpuCoreClocks"] = counter
>+    counter_deps["GpuCoreClocks"] = []
>+
> # For recursively appending counters in order of dependencies...
> def append_deps_and_counter(mdapi_counter, mdapi_counters, deps,
>                             sorted_array, sorted_set):
>-    symbol_name = mdapi_counter.get('SymbolName')
>+    symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_counter.get('SymbolName'))
>
>     if symbol_name in sorted_set:
>         return
>@@ -562,6 +589,7 @@ guids = {}
> guids_xml = et.parse(args.guids)
> for guid in guids_xml.findall(".//guid"):
>     hashing_key = oa_registry.Registry.chipset_derive_hash(guid.get('chipset'),
>+                                                           guid.get('name'),
>                                                            guid.get('mdapi_config_hash'))
>     guids[hashing_key] = guid.get('id')
>
>@@ -569,6 +597,14 @@ for arg in args.xml:
>     mdapi = et.parse(arg)
>
>     concurrent_group = mdapi.find(".//ConcurrentGroup")
>+    chipset = oa_registry.Registry.chipset_name(concurrent_group.get('SupportedHW'))
>+
>+    chipset_fullname = chipset
>+    if concurrent_group.get('SupportedGT') != None:
>+        chipset_fullname = chipset_fullname + oa_registry.Registry.gt_name(concurrent_group.get('SupportedGT'))
>+    if chipset not in chipsets:
>+        print_err("WARNING: unsupported chipset {0}, consider updating {1}".format(chipset, __file__))
>+        continue
>
>     for mdapi_set in mdapi.findall(".//MetricSet"):
>
>@@ -576,20 +612,12 @@ for arg in args.xml:
>         if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis:
>             continue
>
>-        set_symbol_name = mdapi_set.get('SymbolName')
>+        set_symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
>
>         if set_symbol_name in sets:
>             print_err("WARNING: duplicate set named \"" + set_symbol_name + "\" (SKIPPING)")
>             continue
>
>-        chipset = oa_registry.Registry.chipset_name(mdapi_set.get('SupportedHW'))
>-        chipset_fullname = chipset
>-        if concurrent_group.get('SupportedGT') != None:
>-            chipset_fullname = chipset_fullname + oa_registry.Registry.gt_name(concurrent_group.get('SupportedGT'))
>-        if chipset not in chipsets:
>-            print_err("WARNING: unsupported chipset {0}, consider updating {1}".format(chipset, __file__))
>-            continue
>-
>         if args.whitelist:
>             set_whitelist = args.whitelist.split()
>             if set_symbol_name not in set_whitelist:
>@@ -666,6 +694,7 @@ for arg in args.xml:
>
>         mdapi_hw_config_hash = oa_registry.Registry.mdapi_hw_config_hash(mdapi_set)
>         guid_hash = oa_registry.Registry.chipset_derive_hash(chipset_fullname.lower(),
>+                                                             set_symbol_name,
>                                                              mdapi_hw_config_hash)
>         hw_config_hash = oa_registry.Registry.hw_config_hash(set)
>
>@@ -693,7 +722,7 @@ for arg in args.xml:
>         mdapi_counter_deps = {}
>
>         for mdapi_counter in mdapi_set.findall("Metrics/Metric"):
>-            symbol_name = mdapi_counter.get('SymbolName')
>+            symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_counter.get('SymbolName'))
>
>             if symbol_name in counter_blacklist:
>                 continue;
>@@ -712,12 +741,13 @@ for arg in args.xml:
>             equations = expand_macros(equations)
>             equations = equations.replace('$$', "$")
>             for token in equations.split():
>-                if token[0] == '$' and token[1:] not in sys_vars and token[1:] != "Self":
>+                if token[0] == '$' and not codegen.is_hw_var(token) and token[1:] != "Self":
>                     deps.append(token[1:])
>
>             mdapi_counters[symbol_name] = mdapi_counter
>             mdapi_counter_deps[symbol_name] = deps
>
>+        add_gpu_core_clocks_if_missing(mdapi_set, mdapi_counters, mdapi_counter_deps)
>         sorted_mdapi_counters = sort_counters(mdapi_counters, mdapi_counter_deps)
>
>         for mdapi_counter in sorted_mdapi_counters:
>@@ -746,11 +776,11 @@ for arg in args.xml:
>                 #mdapi_counter.set('DeltaReportReadEquation', '$GpuCoreClocks $GpuTime UDIV')
>
>
>-            symbol_name = mdapi_counter.get('SymbolName')
>+            symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_counter.get('SymbolName'))
>
>             counter = et.SubElement(set, 'counter')
>             counter.set('name', apply_aliases(mdapi_counter.get('ShortName'), aliases))
>-            counter.set('symbol_name', mdapi_counter.get('SymbolName'))
>+            counter.set('symbol_name', oa_registry.Registry.sanitize_symbol_name(mdapi_counter.get('SymbolName')))
>             counter.set('underscore_name', underscore(mdapi_counter.get('SymbolName')))
>             counter.set('description', apply_aliases(mdapi_counter.get('LongName'), aliases))
>             counter.set('mdapi_group', apply_aliases(to_text(mdapi_counter.get('Group')), aliases))
>@@ -943,7 +973,7 @@ for arg in args.xml:
>                         #   print_err("WARNING: Counter equation (\"" + equation + "\") references un-kept raw equation of another counter : MetricSet=\"" + \
>                         #             mdapi_set.get('ShortName') + "\" Metric=\"" + mdapi_counter.get('ShortName') + "\"")
>
>-                    elif token[1:] not in raw_equations and token[1:] not in sys_vars:
>+                    elif token[1:] not in raw_equations and not codegen.is_hw_var(token):
>                         print_err("Unknown variable name: \"" + token + "\" in equation \"" + equation + "\"")
>
>             symbol_name = counter.get('symbol_name')
>@@ -952,7 +982,7 @@ for arg in args.xml:
>             equation = equation.replace('$$', "$")
>             for token in equation.split():
>                 if token[0] == '$':
>-                    if token[1:] not in counters and token[1:] not in sys_vars:
>+                    if token[1:] not in counters and not codegen.is_hw_var(token):
>                         print_err("WARNING: Counter equation (\"" + equation + "\") with unknown variable " + \
>                                   token + " (maybe skipped counter): MetricSet=\"" + mdapi_set.get('ShortName') + \
>                                   "\" Metric=\"" + mdapi_counter.get('SymbolName') + "(" + mdapi_counter.get('ShortName') + \
>diff --git a/lib/i915/perf-configs/oa-bdw.xml b/lib/i915/perf-configs/oa-bdw.xml
>index 247fec4f..4fd5dccb 100644
>--- a/lib/i915/perf-configs/oa-bdw.xml
>+++ b/lib/i915/perf-configs/oa-bdw.xml
>@@ -1,5 +1,5 @@
> <?xml version="1.0"?>
>-<metrics version="1619078710" merge_md5="">
>+<metrics version="1650881753" merge_md5="">
>   <set name="Render Metrics Basic set"
>        chipset="BDW"
>        symbol_name="RenderBasic"
>diff --git a/lib/i915/perf-configs/oa_guid_registry.py b/lib/i915/perf-configs/oa_guid_registry.py
>index 1e082ddf..50076e95 100644
>--- a/lib/i915/perf-configs/oa_guid_registry.py
>+++ b/lib/i915/perf-configs/oa_guid_registry.py
>@@ -72,16 +72,15 @@ class Registry:
>
>         return hashlib.md5(registers_str).hexdigest()
>
>-
>     @staticmethod
>-    def chipset_derive_hash(chipset, hash):
>-        """Derive a HW config hash for a given chipset.
>+    def chipset_derive_hash(chipset, set_name, hash):
>+        """Derive a HW config hash for a given chipset & set name.
>
>         This helps us avoiding collisions with identical config across
>         different Gen or GT.
>         """
>
>-        return "%s-%s" % (chipset, hash)
>+        return "%s-%s-%s" % (chipset, set_name, hash)
>
>
>     @staticmethod
>@@ -99,7 +98,9 @@ class Registry:
>                            'EHL',
>                            'TGL',
>                            'RKL',
>-                           'DG1' )
>+                           'DG1',
>+                           'ACM',
>+                           'PVC' )
>         if name in known_chipsets:
>             return name
>
>@@ -110,3 +111,7 @@ class Registry:
>     @staticmethod
>     def gt_name(name):
>         return re.sub(' ', '', name)
>+
>+    @staticmethod
>+    def sanitize_symbol_name(text):
>+        return text.replace('#', "_")
>diff --git a/lib/i915/perf-configs/update-guids.py b/lib/i915/perf-configs/update-guids.py
>index d38a7a95..de66b2f3 100755
>--- a/lib/i915/perf-configs/update-guids.py
>+++ b/lib/i915/perf-configs/update-guids.py
>@@ -60,8 +60,10 @@ def print_err(*args):
>     sys.stderr.write(' '.join(map(str,args)) + '\n')
>
> def guid_hashing_key(guid_obj):
>-    return oa_registry.Registry.chipset_derive_hash(guid_obj['chipset'],
>-                                                    guid_obj['mdapi_config_hash'])
>+    ret = oa_registry.Registry.chipset_derive_hash(guid_obj['chipset'],
>+                                                   guid_obj['name'],
>+                                                   guid_obj['mdapi_config_hash'])
>+    return ret
>
> parser = argparse.ArgumentParser()
> parser.add_argument("xml", nargs="+", help="XML description of metrics")
>@@ -101,6 +103,7 @@ for guid in guids_xml.findall(".//guid"):
>
>     if 'mdapi_config_hash' in guid_obj:
>         hashing_key = oa_registry.Registry.chipset_derive_hash(guid_obj['chipset'],
>+                                                               guid_obj['name'],
>                                                                guid_obj['mdapi_config_hash'])
>         mdapi_config_hash_guid_table[hashing_key] = guid_obj
>
>@@ -121,20 +124,20 @@ for arg in args.xml:
>     internal = et.parse(arg)
>
>     concurrent_group = internal.find(".//ConcurrentGroup")
>+    chipset = oa_registry.Registry.chipset_name(concurrent_group.get('SupportedHW')).lower()
>+    if concurrent_group.get('SupportedGT') != None:
>+        chipset = chipset + oa_registry.Registry.gt_name(concurrent_group.get('SupportedGT')).lower()
>+
>
>     for mdapi_set in internal.findall(".//MetricSet"):
>
>         mdapi_config_hash = oa_registry.Registry.mdapi_hw_config_hash(mdapi_set)
>
>-        chipset = oa_registry.Registry.chipset_name(mdapi_set.get('SupportedHW')).lower()
>-        if concurrent_group.get('SupportedGT') != None:
>-            chipset = chipset + oa_registry.Registry.gt_name(concurrent_group.get('SupportedGT')).lower()
>-
>-        set_name = mdapi_set.get('SymbolName')
>+        set_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
>
>         name = chipset + "_" + set_name;
>
>-        hashing_key = oa_registry.Registry.chipset_derive_hash(chipset, mdapi_config_hash)
>+        hashing_key = oa_registry.Registry.chipset_derive_hash(chipset, set_name, mdapi_config_hash)
>         if hashing_key in mdapi_config_hash_guid_table:
>             guid_obj = mdapi_config_hash_guid_table[hashing_key]
>
>@@ -174,7 +177,9 @@ chipsets = [ 'hsw',
>              'bxt', 'glk',
>              'cnl',
>              'icl', 'ehl',
>-             'tglgt1', 'tglgt2', 'rkl', 'dg1', 'adl' ]
>+             'tglgt1', 'tglgt2', 'rkl', 'dg1', 'adl',
>+             'acmgt1', 'acmgt2', 'acmgt3',
>+]
>
> for chipset in chipsets:
>     filename = 'oa-' + chipset + '.xml'
>diff --git a/lib/i915/perf.h b/lib/i915/perf.h
>index 1493da47..ef2a3029 100644
>--- a/lib/i915/perf.h
>+++ b/lib/i915/perf.h
>@@ -189,6 +189,7 @@ typedef enum {
> 	INTEL_PERF_LOGICAL_COUNTER_UNIT_EU_ATOMIC_REQUESTS_TO_L3_CACHE_LINES,
> 	INTEL_PERF_LOGICAL_COUNTER_UNIT_EU_REQUESTS_TO_L3_CACHE_LINES,
> 	INTEL_PERF_LOGICAL_COUNTER_UNIT_EU_BYTES_PER_L3_CACHE_LINE,
>+	INTEL_PERF_LOGICAL_COUNTER_UNIT_GBPS,
>
> 	INTEL_PERF_LOGICAL_COUNTER_UNIT_MAX
> } intel_perf_logical_counter_unit_t;
>-- 
>2.25.1
>

  reply	other threads:[~2022-10-10 23:00 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-10 21:41 [igt-dev] [PATCH i-g-t v6 00/36] Add DG2 OA test Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 01/36] i915/perf: Check regularly if we are done reading reports Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 02/36] i915/perf: Fix OA short_reads test Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 03/36] i915/perf: Check return value from getparam Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 04/36] i915/perf: Limit sseu-config tests for gen11 Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 05/36] i915/perf: Account for OA sampling interval in polling test Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 06/36] i915/perf: Define OA report types and fix oa-formats test Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 07/36] i915/perf: Use ARRAY_SIZE consistently for num_properties Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 08/36] i915/perf: Use gt in perf tests and lib Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 09/36] i915/perf: Explicitly state rendercopy needs for a test Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 10/36] i915/perf: Skip tests that use rendercopy Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 11/36] i915/perf: Add OA formats for DG2 Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 12/36] i915/perf: Fix CS timestamp vs OA timstamp mismatch Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 13/36] i915/perf: Wait longer for rc6 residency in DG2 Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 14/36] lib/i915/perf: implement report accumulation for new format Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 15/36] lib/i915/perf: fixup conversion script for XEHPSDV Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 16/36] lib/i915/perf: make warning message more helpful Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 17/36] lib/i915/perf: expose new operators for codegen Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 18/36] tools/i915-perf-recorder: add ability to select device Umesh Nerlige Ramappa
2022-10-10 22:06   ` Umesh Nerlige Ramappa
2022-10-11  6:22   ` Petri Latvala
2022-10-18 22:52     ` Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 19/36] lib/i915/perf: fixup report validity Umesh Nerlige Ramappa
2022-10-10 22:08   ` Umesh Nerlige Ramappa
2022-10-10 21:41 ` [igt-dev] [PATCH i-g-t v6 20/36] lib/i915/perf: add a helper to read timestamps Umesh Nerlige Ramappa
2022-10-10 22:22   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 21/36] lib/i915/perf: store bit shifting required for OA timestamps Umesh Nerlige Ramappa
2022-10-10 22:52   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 22/36] lib/i915/perf: indentation fix Umesh Nerlige Ramappa
2022-10-10 22:52   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 23/36] tools/i915-perf-recorder: capture OA & CS frequencies Umesh Nerlige Ramappa
2022-10-10 22:54   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 24/36] tools/i915-perf: make timestamp range easier to compare Umesh Nerlige Ramappa
2022-10-10 22:54   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 25/36] tools/i915-perf: printout CPU clock used Umesh Nerlige Ramappa
2022-10-10 22:55   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 26/36] tools/i915-perf: record remaining perf data on exit Umesh Nerlige Ramappa
2022-10-10 22:55   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 27/36] lib/i915/perf: add support for new EuDualSubslicesTotalCount var Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 28/36] lib/i915/perf-config: extend the device info Umesh Nerlige Ramappa
2022-10-10 22:57   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 29/36] i915/perf: update import script Umesh Nerlige Ramappa
2022-10-10 23:00   ` Umesh Nerlige Ramappa [this message]
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 30/36] lib/i915/perf: add a raw timestamp utility Umesh Nerlige Ramappa
2022-10-10 23:00   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 31/36] lib/i915/perf: add helper function to get report reason Umesh Nerlige Ramappa
2022-10-10 23:02   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 32/36] tools/i915-perf: add option to printout reports data Umesh Nerlige Ramappa
2022-10-10 23:03   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 33/36] lib/i915: prepare codegen for new ACM/DG2 variables Umesh Nerlige Ramappa
2022-10-10 23:04   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 34/36] lib/i915/perf: Add ACM GT1 metrics Umesh Nerlige Ramappa
2022-10-18 22:49   ` Umesh Nerlige Ramappa
2022-10-10 21:42 ` [igt-dev] [PATCH i-g-t v6 35/36] lib/i915/perf: Add ACM GT2 metrics Umesh Nerlige Ramappa
2022-10-18 22:49   ` Umesh Nerlige Ramappa
2022-10-10 22:01 ` [igt-dev] [PATCH i-g-t v6 00/36] Add DG2 OA test Umesh Nerlige Ramappa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y0Sj+MAEwOVNe94G@unerlige-ril \
    --to=umesh.nerlige.ramappa@intel.com \
    --cc=ashutosh.dixit@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=lionel.g.landwerlin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.