Skip to content

Commit

Permalink
drm/v3d: Create function to update a set of GPU stats
Browse files Browse the repository at this point in the history
Given a set of GPU stats, that is, a `struct v3d_stats` related to a
queue in a given context, create a function that can update this set
of GPU stats.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240420213632.339941-5-mcanal@igalia.com
  • Loading branch information
Maíra Canal committed Apr 23, 2024
1 parent b136b19 commit da483d0
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions drivers/gpu/drm/v3d/v3d_sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,14 @@ v3d_job_start_stats(struct v3d_job *job, enum v3d_queue queue)
global_stats->start_ns = now;
}

static void
v3d_stats_update(struct v3d_stats *stats, u64 now)
{
stats->enabled_ns += now - stats->start_ns;
stats->jobs_completed++;
stats->start_ns = 0;
}

void
v3d_job_update_stats(struct v3d_job *job, enum v3d_queue queue)
{
Expand All @@ -127,13 +135,8 @@ v3d_job_update_stats(struct v3d_job *job, enum v3d_queue queue)
struct v3d_stats *local_stats = &file->stats[queue];
u64 now = local_clock();

local_stats->enabled_ns += now - local_stats->start_ns;
local_stats->jobs_completed++;
local_stats->start_ns = 0;

global_stats->enabled_ns += now - global_stats->start_ns;
global_stats->jobs_completed++;
global_stats->start_ns = 0;
v3d_stats_update(local_stats, now);
v3d_stats_update(global_stats, now);
}

static struct dma_fence *v3d_bin_job_run(struct drm_sched_job *sched_job)
Expand Down

0 comments on commit da483d0

Please sign in to comment.