Skip to content

Commit

Permalink
drm/i915/perf: remove generated code
Browse files Browse the repository at this point in the history
A little bit of history :

   Back when i915-perf was introduced (4.13), there was no way to
   dynamically add new OA configurations to i915. Only the generated
   configs baked in at build time were allowed.

   It quickly became obvious that we would need to allow applications
   to upload their own configurations, for instance to be able to test
   new ones, and so by the next stable version (4.14) we added uAPIs
   to allow uploading new configurations.

   When adding that capability, we took the opportunity to remove most
   HW configurations except the TestOa one which is a configuration
   IGT would rely on to verify that the HW is outputting correct
   values. At the time it made sense to have that confiuration in at
   the same time a given HW platform added to the i915-perf driver.

Now that IGT has become the reference point for HW configurations (see
commit 53f8f541ca ("lib: Add i915_perf library"), previously this was
located in the GPUTop repository), the need for having those
configurations in i915-perf is gone.

On the Mesa side, we haven't relied on this test configuration for a
while. The MDAPI library always required 4.14 feature level and always
loaded its configuration into i915.

I'm sure nobody will miss this generated stuff in i915 :)

v2: Fix selftests by creating an empty config

v3: Fix unlocking on allocation error (Dan Carpenter)

v4: Fixup checkpatch warnings

v5: Fix incorrect unlock in error path (Umesh)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200317132222.2638719-1-lionel.g.landwerlin@intel.com
  • Loading branch information
Lionel Landwerlin committed Mar 17, 2020
1 parent a22f347 commit 9aba9c1
Show file tree
Hide file tree
Showing 34 changed files with 96 additions and 1,757 deletions.
17 changes: 0 additions & 17 deletions drivers/gpu/drm/i915/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -243,23 +243,6 @@ i915-y += \
display/vlv_dsi.o \
display/vlv_dsi_pll.o

# perf code
i915-y += \
oa/i915_oa_hsw.o \
oa/i915_oa_bdw.o \
oa/i915_oa_chv.o \
oa/i915_oa_sklgt2.o \
oa/i915_oa_sklgt3.o \
oa/i915_oa_sklgt4.o \
oa/i915_oa_bxt.o \
oa/i915_oa_kblgt2.o \
oa/i915_oa_kblgt3.o \
oa/i915_oa_glk.o \
oa/i915_oa_cflgt2.o \
oa/i915_oa_cflgt3.o \
oa/i915_oa_cnl.o \
oa/i915_oa_icl.o \
oa/i915_oa_tgl.o
i915-y += i915_perf.o

# Post-mortem debug and GPU hang state capture
Expand Down
81 changes: 1 addition & 80 deletions drivers/gpu/drm/i915/i915_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -204,21 +204,6 @@

#include "i915_drv.h"
#include "i915_perf.h"
#include "oa/i915_oa_hsw.h"
#include "oa/i915_oa_bdw.h"
#include "oa/i915_oa_chv.h"
#include "oa/i915_oa_sklgt2.h"
#include "oa/i915_oa_sklgt3.h"
#include "oa/i915_oa_sklgt4.h"
#include "oa/i915_oa_bxt.h"
#include "oa/i915_oa_kblgt2.h"
#include "oa/i915_oa_kblgt3.h"
#include "oa/i915_oa_glk.h"
#include "oa/i915_oa_cflgt2.h"
#include "oa/i915_oa_cflgt3.h"
#include "oa/i915_oa_cnl.h"
#include "oa/i915_oa_icl.h"
#include "oa/i915_oa_tgl.h"

/* HW requires this to be a power of two, between 128k and 16M, though driver
* is currently generally designed assuming the largest 16M size is used such
Expand Down Expand Up @@ -409,10 +394,7 @@ i915_perf_get_oa_config(struct i915_perf *perf, int metrics_set)
struct i915_oa_config *oa_config;

rcu_read_lock();
if (metrics_set == 1)
oa_config = &perf->test_config;
else
oa_config = idr_find(&perf->metrics_idr, metrics_set);
oa_config = idr_find(&perf->metrics_idr, metrics_set);
if (oa_config)
oa_config = i915_oa_config_get(oa_config);
rcu_read_unlock();
Expand Down Expand Up @@ -3716,7 +3698,6 @@ int i915_perf_open_ioctl(struct drm_device *dev, void *data,
void i915_perf_register(struct drm_i915_private *i915)
{
struct i915_perf *perf = &i915->perf;
int ret;

if (!perf->i915)
return;
Expand All @@ -3730,64 +3711,7 @@ void i915_perf_register(struct drm_i915_private *i915)
perf->metrics_kobj =
kobject_create_and_add("metrics",
&i915->drm.primary->kdev->kobj);
if (!perf->metrics_kobj)
goto exit;

sysfs_attr_init(&perf->test_config.sysfs_metric_id.attr);

if (IS_TIGERLAKE(i915)) {
i915_perf_load_test_config_tgl(i915);
} else if (INTEL_GEN(i915) >= 11) {
i915_perf_load_test_config_icl(i915);
} else if (IS_CANNONLAKE(i915)) {
i915_perf_load_test_config_cnl(i915);
} else if (IS_COFFEELAKE(i915)) {
if (IS_CFL_GT2(i915))
i915_perf_load_test_config_cflgt2(i915);
if (IS_CFL_GT3(i915))
i915_perf_load_test_config_cflgt3(i915);
} else if (IS_GEMINILAKE(i915)) {
i915_perf_load_test_config_glk(i915);
} else if (IS_KABYLAKE(i915)) {
if (IS_KBL_GT2(i915))
i915_perf_load_test_config_kblgt2(i915);
else if (IS_KBL_GT3(i915))
i915_perf_load_test_config_kblgt3(i915);
} else if (IS_BROXTON(i915)) {
i915_perf_load_test_config_bxt(i915);
} else if (IS_SKYLAKE(i915)) {
if (IS_SKL_GT2(i915))
i915_perf_load_test_config_sklgt2(i915);
else if (IS_SKL_GT3(i915))
i915_perf_load_test_config_sklgt3(i915);
else if (IS_SKL_GT4(i915))
i915_perf_load_test_config_sklgt4(i915);
} else if (IS_CHERRYVIEW(i915)) {
i915_perf_load_test_config_chv(i915);
} else if (IS_BROADWELL(i915)) {
i915_perf_load_test_config_bdw(i915);
} else if (IS_HASWELL(i915)) {
i915_perf_load_test_config_hsw(i915);
}

if (perf->test_config.id == 0)
goto sysfs_error;

ret = sysfs_create_group(perf->metrics_kobj,
&perf->test_config.sysfs_metric);
if (ret)
goto sysfs_error;

perf->test_config.perf = perf;
kref_init(&perf->test_config.ref);

goto exit;

sysfs_error:
kobject_put(perf->metrics_kobj);
perf->metrics_kobj = NULL;

exit:
mutex_unlock(&perf->lock);
}

Expand All @@ -3807,9 +3731,6 @@ void i915_perf_unregister(struct drm_i915_private *i915)
if (!perf->metrics_kobj)
return;

sysfs_remove_group(perf->metrics_kobj,
&perf->test_config.sysfs_metric);

kobject_put(perf->metrics_kobj);
perf->metrics_kobj = NULL;
}
Expand Down
2 changes: 0 additions & 2 deletions drivers/gpu/drm/i915/i915_perf_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,6 @@ struct i915_perf {
*/
struct ratelimit_state spurious_report_rs;

struct i915_oa_config test_config;

u32 gen7_latched_oastatus1;
u32 ctx_oactxctrl_offset;
u32 ctx_flexeu0_offset;
Expand Down
90 changes: 0 additions & 90 deletions drivers/gpu/drm/i915/oa/i915_oa_bdw.c

This file was deleted.

16 changes: 0 additions & 16 deletions drivers/gpu/drm/i915/oa/i915_oa_bdw.h

This file was deleted.

88 changes: 0 additions & 88 deletions drivers/gpu/drm/i915/oa/i915_oa_bxt.c

This file was deleted.

16 changes: 0 additions & 16 deletions drivers/gpu/drm/i915/oa/i915_oa_bxt.h

This file was deleted.

Loading

0 comments on commit 9aba9c1

Please sign in to comment.