mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 16:36:14 +00:00
overlay: Search for right debugfs path
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
fd88db77cc
commit
9574cb1a3d
@ -25,15 +25,25 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mount.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "debugfs.h"
|
||||
|
||||
char debugfs_path[128];
|
||||
|
||||
int debugfs_init(void)
|
||||
{
|
||||
const char *path = "/sys/kernel/debug";
|
||||
struct stat st;
|
||||
int n;
|
||||
|
||||
if (stat("/debug/dri", &st) == 0) {
|
||||
path = "/debug/dri";
|
||||
goto find_minor;
|
||||
}
|
||||
|
||||
if (stat("/sys/kernel/debug/dri", &st) == 0)
|
||||
return 0;
|
||||
goto find_minor;
|
||||
|
||||
if (stat("/sys/kernel/debug", &st))
|
||||
return errno;
|
||||
@ -41,5 +51,16 @@ int debugfs_init(void)
|
||||
if (mount("debug", "/sys/kernel/debug", "debugfs", 0, 0))
|
||||
return errno;
|
||||
|
||||
find_minor:
|
||||
for (n = 0; n < 16; n++) {
|
||||
int len = sprintf(debugfs_path, "%s/dri/%d", path, n);
|
||||
sprintf(debugfs_path + len, "/i915_error_state");
|
||||
if (stat(debugfs_path, &st) == 0) {
|
||||
debugfs_path[len] = '\0';
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
debugfs_path[0] = '\0';
|
||||
return ENOENT;
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
#ifndef DEBUGFS_H
|
||||
#define DEBUGFS_H
|
||||
|
||||
extern char debugfs_path[128];
|
||||
int debugfs_init(void);
|
||||
|
||||
#endif /* DEBUGFS_H */
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "gem-objects.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
/* /sys/kernel/debug/dri/0/i915_gem_objects:
|
||||
* 46 objects, 20107264 bytes
|
||||
@ -52,7 +53,8 @@ int gem_objects_init(struct gem_objects *obj)
|
||||
|
||||
memset(obj, 0, sizeof(*obj));
|
||||
|
||||
fd = open("/sys/kernel/debug/dri/0/i915_gem_objects", 0);
|
||||
sprintf(buf, "%s/i915_gem_objects", debugfs_path);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return errno;
|
||||
len = read(fd, buf, sizeof(buf)-1);
|
||||
@ -97,7 +99,8 @@ int gem_objects_update(struct gem_objects *obj)
|
||||
freed = obj->comm;
|
||||
obj->comm = NULL;
|
||||
|
||||
fd = open("/sys/kernel/debug/dri/0/i915_gem_objects", 0);
|
||||
sprintf(buf, "%s/i915_gem_objects", debugfs_path);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0) {
|
||||
ret = errno;
|
||||
goto done;
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "gpu-freq.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
int gpu_freq_init(struct gpu_freq *gf)
|
||||
{
|
||||
@ -37,7 +38,8 @@ int gpu_freq_init(struct gpu_freq *gf)
|
||||
|
||||
memset(gf, 0, sizeof(*gf));
|
||||
|
||||
fd = open("/sys/kernel/debug/dri/0/i915_cur_delayinfo", 0);
|
||||
sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return gf->error = errno;
|
||||
|
||||
@ -83,7 +85,8 @@ int gpu_freq_update(struct gpu_freq *gf)
|
||||
if (gf->error)
|
||||
return gf->error;
|
||||
|
||||
fd = open("/sys/kernel/debug/dri/0/i915_cur_delayinfo", 0);
|
||||
sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return gf->error = errno;
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include "gpu-perf.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
#if defined(__i386__)
|
||||
#define rmb() asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
|
||||
@ -45,7 +46,6 @@
|
||||
#define rmb() asm volatile("lfence" ::: "memory")
|
||||
#endif
|
||||
|
||||
#define TRACING_EVENT_PATH "/sys/kernel/debug/tracing/events"
|
||||
#define N_PAGES 32
|
||||
|
||||
struct sample_event {
|
||||
@ -85,7 +85,7 @@ static uint64_t tracepoint_id(const char *sys, const char *name)
|
||||
char buf[1024];
|
||||
int fd, n;
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/%s/%s/id", TRACING_EVENT_PATH, sys, name);
|
||||
snprintf(buf, sizeof(buf), "%s/tracing/events/%s/%s/id", debugfs_path, sys, name);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return 0;
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include "power.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
/* XXX Is this exposed through RAPL? */
|
||||
|
||||
@ -41,7 +42,8 @@ int power_init(struct power *power)
|
||||
|
||||
memset(power, 0, sizeof(*power));
|
||||
|
||||
fd = open("/sys/kernel/debug/dri/0/i915_energy_uJ", 0);
|
||||
sprintf(buf, "%s/i915_energy_uJ", debugfs_path);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return power->error = errno;
|
||||
|
||||
@ -54,12 +56,13 @@ int power_init(struct power *power)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint64_t file_to_u64(const char *path)
|
||||
static uint64_t file_to_u64(const char *name)
|
||||
{
|
||||
char buf[4096];
|
||||
int fd, len;
|
||||
|
||||
fd = open(path, 0);
|
||||
sprintf(buf, "%s/i915_energy_uJ", name);
|
||||
fd = open(buf, 0);
|
||||
if (fd < 0)
|
||||
return 0;
|
||||
|
||||
@ -93,7 +96,7 @@ int power_update(struct power *power)
|
||||
if (power->error)
|
||||
return power->error;
|
||||
|
||||
s->energy = file_to_u64("/sys/kernel/debug/dri/0/i915_energy_uJ");
|
||||
s->energy = file_to_u64("i915_energy_uJ");
|
||||
s->timestamp = clock_ms_to_u64();
|
||||
if (power->count == 1)
|
||||
return EAGAIN;
|
||||
|
Loading…
x
Reference in New Issue
Block a user