Skip to content

Commit

Permalink
drm/msm: Convert shrinker msgs to tracepoints
Browse files Browse the repository at this point in the history
This reduces the spam in dmesg when we start hitting the shrinker, and
replaces it with something we can put on a timeline while profiling or
debugging system issues.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
  • Loading branch information
Rob Clark committed Sep 9, 2020
1 parent 74c0a69 commit fdf3842
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/gpu/drm/msm/msm_gem_shrinker.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include "msm_drv.h"
#include "msm_gem.h"
#include "msm_gpu_trace.h"

static bool msm_gem_shrinker_lock(struct drm_device *dev, bool *unlock)
{
Expand Down Expand Up @@ -87,7 +88,7 @@ msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
mutex_unlock(&dev->struct_mutex);

if (freed > 0)
pr_info_ratelimited("Purging %lu bytes\n", freed << PAGE_SHIFT);
trace_msm_gem_purge(freed << PAGE_SHIFT);

return freed;
}
Expand Down Expand Up @@ -123,7 +124,7 @@ msm_gem_shrinker_vmap(struct notifier_block *nb, unsigned long event, void *ptr)
*(unsigned long *)ptr += unmapped;

if (unmapped > 0)
pr_info_ratelimited("Purging %u vmaps\n", unmapped);
trace_msm_gem_purge_vmaps(unmapped);

return NOTIFY_DONE;
}
Expand Down
26 changes: 26 additions & 0 deletions drivers/gpu/drm/msm/msm_gpu_trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,32 @@ TRACE_EVENT(msm_gmu_freq_change,
TP_printk("freq=%u, perf_index=%u", __entry->freq, __entry->perf_index)
);


TRACE_EVENT(msm_gem_purge,
TP_PROTO(u32 bytes),
TP_ARGS(bytes),
TP_STRUCT__entry(
__field(u32, bytes)
),
TP_fast_assign(
__entry->bytes = bytes;
),
TP_printk("Purging %u bytes", __entry->bytes)
);


TRACE_EVENT(msm_gem_purge_vmaps,
TP_PROTO(u32 unmapped),
TP_ARGS(unmapped),
TP_STRUCT__entry(
__field(u32, unmapped)
),
TP_fast_assign(
__entry->unmapped = unmapped;
),
TP_printk("Purging %u vmaps", __entry->unmapped)
);

#endif

#undef TRACE_INCLUDE_PATH
Expand Down

0 comments on commit fdf3842

Please sign in to comment.