mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-12 10:26:12 +00:00
overlay: Remove busy estimation
Too inaccurate to be useful. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
4572067c88
commit
b20a6b8279
@ -241,51 +241,6 @@ static int request_add(struct gpu_perf *gp, const void *event)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int busy_start(struct gpu_perf *gp, const void *event)
|
|
||||||
{
|
|
||||||
const struct sample_event *sample = event;
|
|
||||||
struct gpu_perf_comm *comm;
|
|
||||||
struct gpu_perf_time *busy;
|
|
||||||
|
|
||||||
comm = lookup_comm(gp, sample->pid);
|
|
||||||
if (comm == NULL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
busy = malloc(sizeof(*busy));
|
|
||||||
if (busy == NULL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
busy->ring = sample->raw[1];
|
|
||||||
busy->seqno = sample->raw[2];
|
|
||||||
busy->time = sample->time;
|
|
||||||
busy->comm = comm;
|
|
||||||
busy->next = gp->busy;
|
|
||||||
gp->busy = busy;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int busy_end(struct gpu_perf *gp, const void *event)
|
|
||||||
{
|
|
||||||
const struct sample_event *sample = event;
|
|
||||||
struct gpu_perf_time *busy, **prev;
|
|
||||||
|
|
||||||
for (prev = &gp->busy; (busy = *prev) != NULL; prev = &busy->next) {
|
|
||||||
if (busy->ring != sample->raw[1])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (busy->seqno != sample->raw[2])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
busy->comm->busy_time += sample->time - busy->time;
|
|
||||||
*prev = busy->next;
|
|
||||||
free(busy);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int flip_complete(struct gpu_perf *gp, const void *event)
|
static int flip_complete(struct gpu_perf *gp, const void *event)
|
||||||
{
|
{
|
||||||
const struct sample_event *sample = event;
|
const struct sample_event *sample = event;
|
||||||
@ -309,11 +264,10 @@ static int wait_begin(struct gpu_perf *gp, const void *event)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
wait->comm = comm;
|
wait->comm = comm;
|
||||||
wait->ring = sample->raw[1];
|
|
||||||
wait->seqno = sample->raw[2];
|
wait->seqno = sample->raw[2];
|
||||||
wait->time = sample->time;
|
wait->time = sample->time;
|
||||||
wait->next = gp->wait;
|
wait->next = gp->wait[sample->raw[1]];
|
||||||
gp->wait = wait;
|
gp->wait[sample->raw[1]] = wait;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -323,10 +277,7 @@ static int wait_end(struct gpu_perf *gp, const void *event)
|
|||||||
const struct sample_event *sample = event;
|
const struct sample_event *sample = event;
|
||||||
struct gpu_perf_time *wait, **prev;
|
struct gpu_perf_time *wait, **prev;
|
||||||
|
|
||||||
for (prev = &gp->wait; (wait = *prev) != NULL; prev = &wait->next) {
|
for (prev = &gp->wait[sample->raw[1]]; (wait = *prev) != NULL; prev = &wait->next) {
|
||||||
if (wait->ring != sample->raw[1])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (wait->seqno != sample->raw[2])
|
if (wait->seqno != sample->raw[2])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -346,8 +297,6 @@ void gpu_perf_init(struct gpu_perf *gp, unsigned flags)
|
|||||||
gp->page_size = getpagesize();
|
gp->page_size = getpagesize();
|
||||||
|
|
||||||
perf_tracepoint_open(gp, "i915", "i915_gem_request_add", request_add);
|
perf_tracepoint_open(gp, "i915", "i915_gem_request_add", request_add);
|
||||||
if (perf_tracepoint_open(gp, "i915", "i915_gem_ring_complete", busy_end) == 0)
|
|
||||||
perf_tracepoint_open(gp, "i915", "i915_gem_ring_dispatch", busy_start);
|
|
||||||
if (perf_tracepoint_open(gp, "i915", "i915_gem_request_wait_begin", wait_begin) == 0)
|
if (perf_tracepoint_open(gp, "i915", "i915_gem_request_wait_begin", wait_begin) == 0)
|
||||||
perf_tracepoint_open(gp, "i915", "i915_gem_request_wait_end", wait_end);
|
perf_tracepoint_open(gp, "i915", "i915_gem_request_wait_end", wait_end);
|
||||||
perf_tracepoint_open(gp, "i915", "i915_flip_complete", flip_complete);
|
perf_tracepoint_open(gp, "i915", "i915_flip_complete", flip_complete);
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define MAX_RINGS 4
|
||||||
|
|
||||||
struct gpu_perf {
|
struct gpu_perf {
|
||||||
int page_size;
|
int page_size;
|
||||||
int nr_cpus;
|
int nr_cpus;
|
||||||
@ -52,10 +54,9 @@ struct gpu_perf {
|
|||||||
struct gpu_perf_time {
|
struct gpu_perf_time {
|
||||||
struct gpu_perf_time *next;
|
struct gpu_perf_time *next;
|
||||||
struct gpu_perf_comm *comm;
|
struct gpu_perf_comm *comm;
|
||||||
int ring;
|
|
||||||
uint32_t seqno;
|
uint32_t seqno;
|
||||||
uint64_t time;
|
uint64_t time;
|
||||||
} *wait, *busy;
|
} *wait[MAX_RINGS];
|
||||||
};
|
};
|
||||||
|
|
||||||
void gpu_perf_init(struct gpu_perf *gp, unsigned flags);
|
void gpu_perf_init(struct gpu_perf *gp, unsigned flags);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user