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

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
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -216,6 +216,22 @@ static int intel_memory_region_memtest(struct intel_memory_region *mem,
	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 *
intel_memory_region_create(struct drm_i915_private *i915,
			   resource_size_t start,
@@ -244,6 +260,9 @@ intel_memory_region_create(struct drm_i915_private *i915,
	mem->type = type;
	mem->instance = instance;

	snprintf(mem->uabi_name, sizeof(mem->uabi_name), "%s%u",
		 region_type_str(type), instance);

	mutex_init(&mem->objects.lock);
	INIT_LIST_HEAD(&mem->objects.list);

+1 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ struct intel_memory_region {
	u16 instance;
	enum intel_region_id id;
	char name[16];
	char uabi_name[16];
	bool private; /* not for userspace */

	struct {