All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/6] drm/i915: Split the batch pool by engine
Date: Thu, 19 Mar 2015 11:58:17 +0000	[thread overview]
Message-ID: <550AB9D9.6070405@linux.intel.com> (raw)
In-Reply-To: <20150319114655.GJ10812@nuc-i3427.alporthouse.com>


On 03/19/2015 11:46 AM, Chris Wilson wrote:
> On Thu, Mar 19, 2015 at 11:39:16AM +0000, Tvrtko Ursulin wrote:
>> On 03/19/2015 10:06 AM, Chris Wilson wrote:
>>> On Thu, Mar 19, 2015 at 09:36:14AM +0000, Tvrtko Ursulin wrote:
>>>> Well in a way at least where when we talk about LRU ordering, it
>>>> depends on retiring working properly and that is not obvious from
>>>> code layout and module separation.
>>>
>>> I've lost you. The list is in LRU submission order. With this split, the
>>> list is both in LRU submission and LRU retirememnt order. That the two
>>> are not the same originally is not a fault of retiring not working
>>> properly, but that the hardware is split into different units and
>>> timelines.
>>>
>>>> And then with this me move traversal inefficiency to possible more
>>>> resource use. Would it be better to fix the cause rather than
>>>> symptoms? Is it feasible? What would be the downside of retiring all
>>>> rings before submission?
>>>
>>> Not really. Inefficient userspace is inefficient. All we want to be sure
>>> is that one abusive client doesn't cause a DoS on another, whilst making
>>> sure that good clients are not penalized.
>>
>> Not sure to which of my question your "not really" was the answer.
>
> We do "fix" the cause later, and I've amended the throttling in mesa to
> prevent a reoccurrence.  So I was thinking of why we only retire on
> the current ring.
>
>> I understood that this is about the completed work which hasn't been
>> retired due the latter only happening on submission to the same
>> ring, or with too low frequency from retire work handler.
>>
>> If this is true, could we just not do a retire pass on all rings on
>> any submission?
>
> No. The problem is that rings retire out of order. So a global LRU
> submission list is not strictly separated between inactive and active
> objects (in contrast to the per-engine list where it is true).

How about retire all rings and then the inactive batch search with a 
global pool becomes only O(num_rings) at worst? Might be worth saving 
memory resource (multiple pools) vs. trivial traversal like that?

Regards,

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

  reply	other threads:[~2015-03-19 11:58 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-09  9:55 [PATCH 1/6] drm/i915: Split i915_gem_batch_pool into its own header Chris Wilson
2015-03-09  9:55 ` [PATCH 2/6] drm/i915: Tidy batch pool logic Chris Wilson
2015-03-17 17:42   ` Tvrtko Ursulin
2015-03-17 20:53     ` Chris Wilson
2015-03-09  9:55 ` [PATCH 3/6] drm/i915: Split the batch pool by engine Chris Wilson
2015-03-18 16:51   ` Tvrtko Ursulin
2015-03-18 17:27     ` Chris Wilson
2015-03-18 17:33       ` Tvrtko Ursulin
2015-03-19  9:36         ` Tvrtko Ursulin
2015-03-19 10:06           ` Chris Wilson
2015-03-19 11:39             ` Tvrtko Ursulin
2015-03-19 11:46               ` Chris Wilson
2015-03-19 11:58                 ` Tvrtko Ursulin [this message]
2015-03-19 12:04                   ` Chris Wilson
2015-03-19 14:01                     ` Tvrtko Ursulin
2015-03-19 14:34                       ` Chris Wilson
2015-03-09  9:55 ` [PATCH 4/6] drm/i915: Free batch pool when idle Chris Wilson
2015-03-19 17:03   ` Tvrtko Ursulin
2015-03-19 17:14     ` Chris Wilson
2015-03-19 17:27       ` Tvrtko Ursulin
2015-03-09  9:55 ` [PATCH 5/6] drm/i915: Split batch pool into size buckets Chris Wilson
2015-03-19 17:35   ` Tvrtko Ursulin
2015-03-19 21:09     ` Chris Wilson
2015-03-20  9:25       ` Tvrtko Ursulin
2015-03-09  9:55 ` [PATCH 6/6] drm/i915: Include active flag when describing objects in debugfs Chris Wilson
2015-03-09 14:59   ` shuang.he
2015-03-19 17:41   ` Tvrtko Ursulin
2015-03-19 21:05     ` Chris Wilson
2015-03-20  9:23       ` Tvrtko Ursulin
2015-03-19 17:37 ` [PATCH 1/6] drm/i915: Split i915_gem_batch_pool into its own header Tvrtko Ursulin
2015-03-19 21:06   ` Chris Wilson

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=550AB9D9.6070405@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@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 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.