All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel@ffwll.ch>
Cc: "Intel Graphics Development" <Intel-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Christian König" <christian.koenig@amd.com>,
	"Chris Healy" <cphealy@gmail.com>,
	"David M Nieto" <David.Nieto@amd.com>
Subject: Re: [Intel-gfx] [PATCH 6/7] drm: Document fdinfo format specification
Date: Fri, 21 Jan 2022 11:50:51 +0000	[thread overview]
Message-ID: <423c8ff1-3a4b-3e69-8561-3056c7d2d20f@linux.intel.com> (raw)
In-Reply-To: <CAF6AEGs58S7U=1nso=0BAURUuobeUam4V0j1W7ZsrK5W7MqRvw@mail.gmail.com>


On 20/01/2022 16:44, Rob Clark wrote:
> On Wed, Jan 19, 2022 at 7:09 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>>
>> On Thu, Jan 06, 2022 at 04:55:35PM +0000, Tvrtko Ursulin wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> Proposal to standardise the fdinfo text format as optionally output by DRM
>>> drivers.
>>>
>>> Idea is that a simple but, well defined, spec will enable generic
>>> userspace tools to be written while at the same time avoiding a more heavy
>>> handed approach of adding a mid-layer to DRM.
>>>
>>> i915 implements a subset of the spec, everything apart from the memory
>>> stats currently, and a matching intel_gpu_top tool exists.
>>>
>>> Open is to see if AMD can migrate to using the proposed GPU utilisation
>>> key-value pairs, or if they are not workable to see whether to go
>>> vendor specific, or if a standardised  alternative can be found which is
>>> workable for both drivers.
>>>
>>> Same for the memory utilisation key-value pairs proposal.
>>>
>>> v2:
>>>   * Update for removal of name and pid.
>>>
>>> v3:
>>>   * 'Drm-driver' tag will be obtained from struct drm_driver.name. (Daniel)
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> Cc: David M Nieto <David.Nieto@amd.com>
>>> Cc: Christian König <christian.koenig@amd.com>
>>> Cc: Daniel Vetter <daniel@ffwll.ch>
>>> Cc: Daniel Stone <daniel@fooishbar.org>
>>> Cc: Chris Healy <cphealy@gmail.com>
>>> Acked-by: Christian König <christian.koenig@amd.com>
>>
>> I'm assuming this ack here and later on is a "amdgpu plans to use this
>> too" kind of affair. Especially also in the lights of eventually using
>> matching semantics for cgroups and everything else tied to gpu execution
>> resource management.
>>
>> If not I'm mildly worried that we're creating fake-standard stuff here
>> which cannot actually be used by anything resembling driver-agnostic
>> userspace.
> 
> I think I could implement something like this for drm/msm.  I am a bit
> uncertain about the memory stats (ie. how are we intended to account
> for imported/exported/shared bo's)?  But we already track cycles+time
> per submit for devfreq, it would be pretty easy to add per drm_file
> counters to accumulate the per-submit results.  We could even track
> per-context (submitqueue) for processes that have more than a single
> context, although not sure if that is useful.

Interesting tidbit is that the whole i915 work started from a customer 
request to expose just that (per context) in a form akin to 
getrusage(2). I think this kind of introspection capability is 
interesting but as it is driver specific territory it's only anecdotal 
for what this thread is concerned.

> And I think there is probably some room for shared helper to print
> parts other than the per-engine stats (and maybe memory stats,
> although even that could be a shared implementation for some
> drivers).. with a driver callback for the non-generic parts, ie.
> something like:
> 
>     drm_driver::show_client_stats(struct drm_file *, struct drm_printer *)
> 
> but that can come later.
> 
> If there is a tool somewhere that displays this info, that would be
> useful for testing my implementation.

I have a patch to Intel specific intel_gpu_top (see 
https://patchwork.freedesktop.org/patch/468491/?series=98555&rev=1). 
I'll have a look to see how much work would it be to extract common bits 
into a library and write a quick agnostic tool using it.

Regards,

Tvrtko

WARNING: multiple messages have this Message-ID (diff)
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel@ffwll.ch>
Cc: "Intel Graphics Development" <Intel-gfx@lists.freedesktop.org>,
	"Daniel Stone" <daniel@fooishbar.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Christian König" <christian.koenig@amd.com>,
	"Chris Healy" <cphealy@gmail.com>,
	"David M Nieto" <David.Nieto@amd.com>
Subject: Re: [Intel-gfx] [PATCH 6/7] drm: Document fdinfo format specification
Date: Fri, 21 Jan 2022 11:50:51 +0000	[thread overview]
Message-ID: <423c8ff1-3a4b-3e69-8561-3056c7d2d20f@linux.intel.com> (raw)
In-Reply-To: <CAF6AEGs58S7U=1nso=0BAURUuobeUam4V0j1W7ZsrK5W7MqRvw@mail.gmail.com>


On 20/01/2022 16:44, Rob Clark wrote:
> On Wed, Jan 19, 2022 at 7:09 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>>
>> On Thu, Jan 06, 2022 at 04:55:35PM +0000, Tvrtko Ursulin wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> Proposal to standardise the fdinfo text format as optionally output by DRM
>>> drivers.
>>>
>>> Idea is that a simple but, well defined, spec will enable generic
>>> userspace tools to be written while at the same time avoiding a more heavy
>>> handed approach of adding a mid-layer to DRM.
>>>
>>> i915 implements a subset of the spec, everything apart from the memory
>>> stats currently, and a matching intel_gpu_top tool exists.
>>>
>>> Open is to see if AMD can migrate to using the proposed GPU utilisation
>>> key-value pairs, or if they are not workable to see whether to go
>>> vendor specific, or if a standardised  alternative can be found which is
>>> workable for both drivers.
>>>
>>> Same for the memory utilisation key-value pairs proposal.
>>>
>>> v2:
>>>   * Update for removal of name and pid.
>>>
>>> v3:
>>>   * 'Drm-driver' tag will be obtained from struct drm_driver.name. (Daniel)
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> Cc: David M Nieto <David.Nieto@amd.com>
>>> Cc: Christian König <christian.koenig@amd.com>
>>> Cc: Daniel Vetter <daniel@ffwll.ch>
>>> Cc: Daniel Stone <daniel@fooishbar.org>
>>> Cc: Chris Healy <cphealy@gmail.com>
>>> Acked-by: Christian König <christian.koenig@amd.com>
>>
>> I'm assuming this ack here and later on is a "amdgpu plans to use this
>> too" kind of affair. Especially also in the lights of eventually using
>> matching semantics for cgroups and everything else tied to gpu execution
>> resource management.
>>
>> If not I'm mildly worried that we're creating fake-standard stuff here
>> which cannot actually be used by anything resembling driver-agnostic
>> userspace.
> 
> I think I could implement something like this for drm/msm.  I am a bit
> uncertain about the memory stats (ie. how are we intended to account
> for imported/exported/shared bo's)?  But we already track cycles+time
> per submit for devfreq, it would be pretty easy to add per drm_file
> counters to accumulate the per-submit results.  We could even track
> per-context (submitqueue) for processes that have more than a single
> context, although not sure if that is useful.

Interesting tidbit is that the whole i915 work started from a customer 
request to expose just that (per context) in a form akin to 
getrusage(2). I think this kind of introspection capability is 
interesting but as it is driver specific territory it's only anecdotal 
for what this thread is concerned.

> And I think there is probably some room for shared helper to print
> parts other than the per-engine stats (and maybe memory stats,
> although even that could be a shared implementation for some
> drivers).. with a driver callback for the non-generic parts, ie.
> something like:
> 
>     drm_driver::show_client_stats(struct drm_file *, struct drm_printer *)
> 
> but that can come later.
> 
> If there is a tool somewhere that displays this info, that would be
> useful for testing my implementation.

I have a patch to Intel specific intel_gpu_top (see 
https://patchwork.freedesktop.org/patch/468491/?series=98555&rev=1). 
I'll have a look to see how much work would it be to extract common bits 
into a library and write a quick agnostic tool using it.

Regards,

Tvrtko

  reply	other threads:[~2022-01-21 11:50 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-06 16:55 [PATCH 0/7] Per client GPU stats Tvrtko Ursulin
2022-01-06 16:55 ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 1/7] drm/i915: Explicitly track DRM clients Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 2/7] drm/i915: Make GEM contexts " Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 3/7] drm/i915: Track runtime spent in closed and unreachable GEM contexts Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 4/7] drm/i915: Track all user contexts per client Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 5/7] drm/i915: Track context current active time Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 6/7] drm: Document fdinfo format specification Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-01-19 15:08   ` Daniel Vetter
2022-01-19 15:08     ` [Intel-gfx] " Daniel Vetter
2022-01-20 10:30     ` Tvrtko Ursulin
2022-01-20 10:30       ` [Intel-gfx] " Tvrtko Ursulin
2022-01-20 16:44     ` Rob Clark
2022-01-20 16:44       ` Rob Clark
2022-01-21 11:50       ` Tvrtko Ursulin [this message]
2022-01-21 11:50         ` Tvrtko Ursulin
2022-01-25 10:24         ` Tvrtko Ursulin
2022-01-25 10:24           ` Tvrtko Ursulin
2022-01-25 10:36           ` Christian König
2022-01-25 10:36             ` Christian König
2022-02-21 11:14           ` Tvrtko Ursulin
2022-02-21 11:14             ` Tvrtko Ursulin
2022-01-06 16:55 ` [PATCH 7/7] drm/i915: Expose client engine utilisation via fdinfo Tvrtko Ursulin
2022-01-06 16:55   ` [Intel-gfx] " Tvrtko Ursulin
2022-02-19  0:51   ` Umesh Nerlige Ramappa
2022-02-19  0:51     ` [Intel-gfx] " Umesh Nerlige Ramappa
2022-02-22 12:31     ` Tvrtko Ursulin
2022-02-22 12:31       ` [Intel-gfx] " Tvrtko Ursulin
2022-01-06 18:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Per client GPU stats (rev6) Patchwork
2022-01-06 18:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-01-06 18:20 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork
2022-01-06 18:39 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-01-07 14:46 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2021-12-03 15:49 [PATCH 0/7] Per client GPU stats Tvrtko Ursulin
2021-12-03 15:49 ` [Intel-gfx] [PATCH 6/7] drm: Document fdinfo format specification Tvrtko Ursulin
2021-09-22 15:51 [PATCH 0/7] Per client GPU stats Tvrtko Ursulin
2021-09-22 15:51 ` [Intel-gfx] [PATCH 6/7] drm: Document fdinfo format specification Tvrtko Ursulin

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=423c8ff1-3a4b-3e69-8561-3056c7d2d20f@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=David.Nieto@amd.com \
    --cc=Intel-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=cphealy@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=robdclark@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.