From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH v5 0/5] fdinfo memory stats
Date: Fri, 7 Jul 2023 14:02:15 +0100 [thread overview]
Message-ID: <20230707130220.3966836-1-tvrtko.ursulin@linux.intel.com> (raw)
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
I added tracking of most classes of objects which contribute to client's memory
footprint and accouting along the similar lines as in Rob's msm code. Then
printing it out to fdinfo using the drm helper Rob added.
Accounting by keeping per client lists may not be the most effient method,
perhaps we should simply add and subtract stats directly at convenient sites,
but that too is not straightforward due no existing connection between buffer
objects and clients. Possibly some other tricky bits in the buffer sharing
deparment. So lets see if this works for now. Infrequent reader penalty should
not be too bad (may be even useful to dump the lists in debugfs?) and additional
list_head per object pretty much drowns in the noise.
Example fdinfo with the series applied:
# cat /proc/1383/fdinfo/8
pos: 0
flags: 02100002
mnt_id: 21
ino: 397
drm-driver: i915
drm-client-id: 18
drm-pdev: 0000:00:02.0
drm-total-system: 125 MiB
drm-shared-system: 16 MiB
drm-active-system: 110 MiB
drm-resident-system: 125 MiB
drm-purgeable-system: 2 MiB
drm-total-stolen-system: 0
drm-shared-stolen-system: 0
drm-active-stolen-system: 0
drm-resident-stolen-system: 0
drm-purgeable-stolen-system: 0
drm-engine-render: 25662044495 ns
drm-engine-copy: 0 ns
drm-engine-video: 0 ns
drm-engine-video-enhance: 0 ns
Example gputop output (local patches currently):
DRM minor 0
PID SMEM SMEMRSS render copy video NAME
1233 124M 124M |████████|| || || | neverball
1130 59M 59M |█▌ || || || | Xorg
1207 12M 12M | || || || | xfwm4
v2:
* Now actually per client.
v3:
* Track imported dma-buf objects.
v4:
* Rely on DRM GEM handles for tracking user objects.
* Fix internal object accounting (no placements).
v5:
* Fixed brain fart of overwriting the loop cursor.
* Fixed object destruction racing with fdinfo reads.
* Take reference to GEM context while using it.
Tvrtko Ursulin (5):
drm/i915: Add ability for tracking buffer objects per client
drm/i915: Record which client owns a VM
drm/i915: Track page table backing store usage
drm/i915: Account ring buffer and context state storage
drm/i915: Implement fdinfo memory stats printing
drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 +-
.../gpu/drm/i915/gem/i915_gem_context_types.h | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object.c | 13 +-
.../gpu/drm/i915/gem/i915_gem_object_types.h | 12 ++
.../gpu/drm/i915/gem/selftests/mock_context.c | 4 +-
drivers/gpu/drm/i915/gt/intel_context.c | 13 ++
drivers/gpu/drm/i915/gt/intel_gtt.c | 6 +
drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
drivers/gpu/drm/i915/i915_drm_client.c | 131 ++++++++++++++++++
drivers/gpu/drm/i915/i915_drm_client.h | 40 ++++++
10 files changed, 226 insertions(+), 8 deletions(-)
--
2.39.2
next reply other threads:[~2023-07-07 13:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-07 13:02 Tvrtko Ursulin [this message]
2023-07-07 13:02 ` [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client Tvrtko Ursulin
2023-07-10 10:44 ` Iddamsetty, Aravind
2023-07-10 13:20 ` Tvrtko Ursulin
2023-07-11 7:48 ` Iddamsetty, Aravind
2023-07-11 9:39 ` Tvrtko Ursulin
2023-07-07 13:02 ` [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM Tvrtko Ursulin
2023-07-11 9:08 ` Iddamsetty, Aravind
2023-07-07 13:02 ` [Intel-gfx] [PATCH 3/5] drm/i915: Track page table backing store usage Tvrtko Ursulin
2023-07-11 9:08 ` Iddamsetty, Aravind
2023-07-07 13:02 ` [Intel-gfx] [PATCH 4/5] drm/i915: Account ring buffer and context state storage Tvrtko Ursulin
2023-07-11 9:29 ` Iddamsetty, Aravind
2023-07-11 9:44 ` Tvrtko Ursulin
2023-07-07 13:02 ` [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing Tvrtko Ursulin
2023-08-24 11:35 ` Upadhyay, Tejas
2023-09-20 14:22 ` Tvrtko Ursulin
2023-09-20 14:39 ` Rob Clark
2023-07-07 16:00 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for fdinfo memory stats (rev4) Patchwork
2023-07-07 16:00 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-07-07 16:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-07-07 20:57 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230707130220.3966836-1-tvrtko.ursulin@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=Intel-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox