drm/i915: Add ability for tracking buffer objects per client
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 7 Nov 2023 10:18:01 +0000 (10:18 +0000)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 10 Nov 2023 11:48:50 +0000 (11:48 +0000)
commite4ae85e364fc652ea15d85b0f3a6da304c9b5ce7
tree52998c061e436b905245c9ee835a9545e5b02b2c
parentbae9fca9684335478ff147413bd69c8d77b66cf9
drm/i915: Add ability for tracking buffer objects per client

In order to show per client memory usage lets add some infrastructure
which enables tracking buffer objects owned by clients.

We add a per client list protected by a new per client lock and to support
delayed destruction (post client exit) we make tracked objects hold
references to the owning client.

Also, object memory region teardown is moved to the existing RCU free
callback to allow safe dereference from the fdinfo RCU read section.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231107101806.608990-1-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/gem/i915_gem_object.c
drivers/gpu/drm/i915/gem/i915_gem_object_types.h
drivers/gpu/drm/i915/i915_drm_client.c
drivers/gpu/drm/i915/i915_drm_client.h