All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>,
	Chris Wilson <chris@chris-wilson.co.uk>,
	Tvrtko Ursulin <tursulin@ursulin.net>,
	Intel-gfx@lists.freedesktop.org
Subject: Re: [RFC 0/3] Engine utilization tracking
Date: Wed, 10 May 2017 09:38:24 +0100	[thread overview]
Message-ID: <e7a2eeee-bdcd-1fd9-37bb-78baec48cb15@linux.intel.com> (raw)
In-Reply-To: <7e469211-b709-9656-cf46-90ef6f2fa914@intel.com>


On 09/05/2017 19:11, Dmitry Rogozhkin wrote:
> On 5/9/2017 8:51 AM, Tvrtko Ursulin wrote:
>> On 09/05/2017 16:29, Chris Wilson wrote:
>>> On Tue, May 09, 2017 at 04:16:41PM +0100, Tvrtko Ursulin wrote:
>>>>
>>>> On 09/05/2017 15:26, Chris Wilson wrote:
>>>>> On Tue, May 09, 2017 at 03:09:33PM +0100, Tvrtko Ursulin wrote:
>>>>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>>>
>>>>>> By popular customer demand here is the prototype for cheap engine
>>>>>> utilization
>>>>>> tracking.
>>>>>
>>>>> customer and debugfs?
>>>>
>>>> Well I did write in one of the following paragraphs on this topic.
>>>> Perhaps I should have put it in procfs. :) Sysfs API looks
>>>> restrictive or perhaps I missed a way to get low level (fops) access
>>>> to it.
>>>>
>>>>>> It uses static branches so in the default off case it really
>>>>>> should be cheap.
>>>>>
>>>>> Not as cheap (for the off case) as simply sampling RING_HEAD/RING_TAIL
>>>>
>>>> Off case are three no-op instructions in three places in the irq
>>>> tasklet. And a little bit of object size growth, if you worry about
>>>> that aspect?
>>>
>>> It's just how the snowball begins.
>>
>> We should be able to control it. We also have to consider which one is
>> lighter for this particular use case.
>>
>>>>> which looks to be the same level of detail. I wrapped all this up in a
>>>>> perf interface once up a time...
>>>>
>>>> How does that work? Via periodic sampling? Accuracy sounds like it
>>>> would be proportionate to the sampling frequency, no?
>>>
>>> Right, and the sampling frequency is under user control (via perf) with
>>> a default of around 1000, gives a small systematic error when dealing
>>> with %
>>>
>>> I included power, interrupts, rc6, frequency (and the statistics but I
>>> never used those and dropped them once oa landed), as well as
>>> utilisation, just for the convenience of having sane interface :)
>>
>> Can you resurrect those patches? Don't have to rebase and all but I
>> would like to see them at least.
> Mind that the idea behind the requested kind of stats is primary usage
> by the customers in the _product_ environment to track GPU occupancy and
> predict based on this stats whether they can execute something else.
> Which means that 1) debugfs and any kind of debug-like infrastructure is

Yeah I acknowledged in the cover letter debugfs is not ideal.

I could implement it in sysfs I suppose by doing time based transitions 
as opposed to having explicit open/release hooks. It wouldn't make a 
fundamental different to this RFC from the overhead point of view.

But most importantly we need to see in detail how does Chris' perf based 
idea looks like and does it fit your requirements.

> really a no-option, 2) any kind of restrictions are no-option (like
> disable RC6 states). Also, there is no need to expose low-level detailed
> information like how many EUs and VMEs were in use - this belongs to the
> debug things. As for now i915 driver exposes only single required
> metric: gt_act_freq_mhz.

I suppose it doesn't matter if the perf based solution (or any really) 
exports more than what you want/need since it is such that you can 
select the events you are interested in.

But the overhead and accuracy of both solutions, plus some other 
considerations like maintainability, need to be looked at.

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-05-10  8:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-09 14:09 [RFC 0/3] Engine utilization tracking Tvrtko Ursulin
2017-05-09 14:09 ` [RFC 1/3] drm/i915: Wrap context schedule notification Tvrtko Ursulin
2017-05-09 14:09 ` [RFC 2/3] drm/i915: Engine busy time tracking Tvrtko Ursulin
2017-05-10 12:41   ` Joonas Lahtinen
2017-05-09 14:09 ` [RFC 3/3] drm/i915: Export engine busy stats in debugfs Tvrtko Ursulin
2017-05-09 18:17   ` Dmitry Rogozhkin
2017-05-10  8:30     ` Tvrtko Ursulin
2017-05-10 15:57       ` Dmitry Rogozhkin
2017-05-09 14:26 ` [RFC 0/3] Engine utilization tracking Chris Wilson
2017-05-09 15:16   ` Tvrtko Ursulin
2017-05-09 15:29     ` Chris Wilson
2017-05-09 15:51       ` Tvrtko Ursulin
2017-05-09 18:11         ` Dmitry Rogozhkin
2017-05-10  8:38           ` Tvrtko Ursulin [this message]
2017-05-10 15:50             ` Dmitry Rogozhkin
2017-05-10 19:45             ` Daniel Vetter
2017-05-12 17:40               ` Dmitry Rogozhkin
2017-05-10 12:31         ` Chris Wilson
2017-05-09 14:51 ` ✓ Fi.CI.BAT: success for " 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=e7a2eeee-bdcd-1fd9-37bb-78baec48cb15@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=Intel-gfx@lists.freedesktop.org \
    --cc=chris@chris-wilson.co.uk \
    --cc=dmitry.v.rogozhkin@intel.com \
    --cc=tursulin@ursulin.net \
    /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.