aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/lima/lima_ctx.h
diff options
context:
space:
mode:
authorErico Nunes <[email protected]>2023-03-12 23:30:50 +0000
committerQiang Yu <[email protected]>2023-04-02 10:18:37 +0000
commitbccafec957a5c4b22ac29e53a39e82d0a0008348 (patch)
tree9281a1ba5f6db90cefa22a20e0b38bd64164bc4e /drivers/gpu/drm/lima/lima_ctx.h
parentdrm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe() (diff)
downloadkernel-bccafec957a5c4b22ac29e53a39e82d0a0008348.tar.gz
kernel-bccafec957a5c4b22ac29e53a39e82d0a0008348.zip
drm/lima: add usage counting method to ctx_mgr
lima maintains a context manager per drm_file, similar to amdgpu. In order to account for the complete usage per drm_file, all of the associated contexts need to be considered. Previously released contexts also need to be accounted for but their drm_sched_entity info is gone once they get released, so account for it in the ctx_mgr. Signed-off-by: Erico Nunes <[email protected]> Signed-off-by: Qiang Yu <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/lima/lima_ctx.h')
-rw-r--r--drivers/gpu/drm/lima/lima_ctx.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/lima/lima_ctx.h b/drivers/gpu/drm/lima/lima_ctx.h
index 74e2be09090f..6068863880eb 100644
--- a/drivers/gpu/drm/lima/lima_ctx.h
+++ b/drivers/gpu/drm/lima/lima_ctx.h
@@ -12,6 +12,7 @@
struct lima_ctx {
struct kref refcnt;
struct lima_device *dev;
+ struct lima_ctx_mgr *mgr;
struct lima_sched_context context[lima_pipe_num];
atomic_t guilty;
@@ -23,6 +24,7 @@ struct lima_ctx {
struct lima_ctx_mgr {
struct mutex lock;
struct xarray handles;
+ u64 elapsed_ns[lima_pipe_num];
};
int lima_ctx_create(struct lima_device *dev, struct lima_ctx_mgr *mgr, u32 *id);
@@ -31,5 +33,6 @@ struct lima_ctx *lima_ctx_get(struct lima_ctx_mgr *mgr, u32 id);
void lima_ctx_put(struct lima_ctx *ctx);
void lima_ctx_mgr_init(struct lima_ctx_mgr *mgr);
void lima_ctx_mgr_fini(struct lima_ctx_mgr *mgr);
+void lima_ctx_mgr_usage(struct lima_ctx_mgr *mgr, u64 usage[lima_pipe_num]);
#endif