summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/lima/lima_ctx.h
diff options
context:
space:
mode:
authorErico Nunes <nunes.erico@gmail.com>2023-03-13 00:30:50 +0100
committerQiang Yu <yuq825@gmail.com>2023-04-02 18:18:37 +0800
commitbccafec957a5c4b22ac29e53a39e82d0a0008348 (patch)
tree9281a1ba5f6db90cefa22a20e0b38bd64164bc4e /drivers/gpu/drm/lima/lima_ctx.h
parentc5647cae2704e58d1c4e5fedbf63f11bca6376c9 (diff)
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 <nunes.erico@gmail.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230312233052.21095-2-nunes.erico@gmail.com
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