Commit 3b38d351 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin

drm/i915: Add stable memory region names

At the moment memory region names are a bit too varied and too
inconsistent to be used for ABI purposes, like for upcoming fdinfo
memory stats.

System memory can be either system or system-ttm. Local memory has the
instance number appended, others do not. Not only incosistent but thi
kind of implementation detail is uninteresting for intended users of
fdinfo memory stats.

Add a stable name always formed as $type$instance. Could have chosen a
different stable scheme, but I think any consistent and stable scheme
should do just fine.
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarAravind Iddamsetty <aravind.iddamsetty@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231107101806.608990-5-tvrtko.ursulin@linux.intel.com
parent dc1a2775
...@@ -216,6 +216,22 @@ static int intel_memory_region_memtest(struct intel_memory_region *mem, ...@@ -216,6 +216,22 @@ static int intel_memory_region_memtest(struct intel_memory_region *mem,
return err; return err;
} }
static const char *region_type_str(u16 type)
{
switch (type) {
case INTEL_MEMORY_SYSTEM:
return "system";
case INTEL_MEMORY_LOCAL:
return "local";
case INTEL_MEMORY_STOLEN_LOCAL:
return "stolen-local";
case INTEL_MEMORY_STOLEN_SYSTEM:
return "stolen-system";
default:
return "unknown";
}
}
struct intel_memory_region * struct intel_memory_region *
intel_memory_region_create(struct drm_i915_private *i915, intel_memory_region_create(struct drm_i915_private *i915,
resource_size_t start, resource_size_t start,
...@@ -244,6 +260,9 @@ intel_memory_region_create(struct drm_i915_private *i915, ...@@ -244,6 +260,9 @@ intel_memory_region_create(struct drm_i915_private *i915,
mem->type = type; mem->type = type;
mem->instance = instance; mem->instance = instance;
snprintf(mem->uabi_name, sizeof(mem->uabi_name), "%s%u",
region_type_str(type), instance);
mutex_init(&mem->objects.lock); mutex_init(&mem->objects.lock);
INIT_LIST_HEAD(&mem->objects.list); INIT_LIST_HEAD(&mem->objects.list);
......
...@@ -80,6 +80,7 @@ struct intel_memory_region { ...@@ -80,6 +80,7 @@ struct intel_memory_region {
u16 instance; u16 instance;
enum intel_region_id id; enum intel_region_id id;
char name[16]; char name[16];
char uabi_name[16];
bool private; /* not for userspace */ bool private; /* not for userspace */
struct { struct {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment