diff options
| author | Rob Clark <robdclark@chromium.org> | 2022-03-03 16:52:16 -0800 |
|---|---|---|
| committer | Rob Clark <robdclark@chromium.org> | 2022-03-04 11:59:31 -0800 |
| commit | 90f45c42d7d7b0ec0fd797485c07fc421c474e12 (patch) | |
| tree | 152e021024f941ad5476aa2585f455bb58d4d321 /drivers/gpu/drm/msm/msm_drv.c | |
| parent | drm/msm: Add SET_PARAM ioctl (diff) | |
| download | linux-90f45c42d7d7b0ec0fd797485c07fc421c474e12.tar.gz linux-90f45c42d7d7b0ec0fd797485c07fc421c474e12.zip | |
drm/msm: Add SYSPROF param (v2)
Add a SYSPROF param for system profiling tools like Mesa's pps-producer
(perfetto) to control behavior related to system-wide performance
counter collection. In particular, for profiling, one wants to ensure
that GPU context switches do not effect perfcounter state, and might
want to suppress suspend (which would cause counters to lose state).
v2: Swap the order in msm_file_private_set_sysprof() [sboyd] and
initialize the sysprof_active refcount to one (because the under/
overflow checking in refcount_t doesn't expect a 0->1 transition)
meaning that values greater than 1 means sysprof is active.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Link: https://lore.kernel.org/r/20220304005317.776110-4-robdclark@gmail.com
Diffstat (limited to 'drivers/gpu/drm/msm/msm_drv.c')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index c4d90a9b7010..a2834663dec4 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -558,8 +558,16 @@ static void context_close(struct msm_file_private *ctx) static void msm_postclose(struct drm_device *dev, struct drm_file *file) { + struct msm_drm_private *priv = dev->dev_private; struct msm_file_private *ctx = file->driver_priv; + /* + * It is not possible to set sysprof param to non-zero if gpu + * is not initialized: + */ + if (priv->gpu) + msm_file_private_set_sysprof(ctx, priv->gpu, 0); + context_close(ctx); } |
