From: Thomas Hellstrom <thomas@shipmail.org>
To: "Marek Olšák" <maraeo@gmail.com>
Cc: Jerome Glisse <jglisse@redhat.com>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/ttm: add minimum residency constraint for bo eviction
Date: Thu, 29 Nov 2012 09:04:36 +0100 [thread overview]
Message-ID: <50B71714.4060802@shipmail.org> (raw)
In-Reply-To: <CAAxE2A4jvH417188LwO2kX-ahoPi1dxNtcw3P2RSo8G6g-br6A@mail.gmail.com>
On 11/29/2012 03:15 AM, Marek Olšák wrote:
> On Thu, Nov 29, 2012 at 12:44 AM, Alan Swanson <swanson@ukfsn.org> wrote:
>> On Wed, 2012-11-28 at 18:24 -0500, Jerome Glisse wrote:
>>> On Wed, Nov 28, 2012 at 6:18 PM, Thomas Hellstrom <thomas@shipmail.org> wrote:
>>>> On 11/28/2012 04:58 PM, j.glisse@gmail.com wrote:
>>>>> From: Jerome Glisse <jglisse@redhat.com>
>>>>>
>>>>> This patch add a minimum residency time configurable for each memory
>>>>> pool (VRAM, GTT, ...). Intention is to avoid having a lot of memory
>>>>> eviction from VRAM up to a point where the GPU pretty much spend all
>>>>> it's time moving things in and out.
>>>>
>>>> This patch seems odd to me.
>>>>
>>>> It seems the net effect is to refuse evictions from VRAM and make buffers go
>>>> somewhere else, and that makes things faster?
>>>>
>>>> Why don't they go there in the first place instead of trying to force them
>>>> into VRAM,
>>>> when VRAM is full?
>>>>
>>>> /Thomas
>>> It's mostly a side effect of cs and validating with each cs, if boA is
>>> in cs1 and not in cs2 and boB is in cs1 but not in cs2 than boA could
>>> be evicted by cs2 and boB moved in, if next cs ie cs3 is like cs1 then
>>> boA move back again and boB is evicted, then you get cs4 which
>>> reference boB but not boA, boA get evicted and boB move in ... So ttm
>>> just spend its time doing eviction but he doing so because it's ask by
>>> the driver to do so. Note that what is costly there is not the bo move
>>> in itself but the page allocation.
>>>
>>> I propose this patch to put a boundary on bo eviction frequency, i
>>> thought it might help other driver, if you set the residency time to 0
>>> you get the current behavior, if you don't you enforce a minimum
>>> residency time which helps driver like radeon. Of course a proper fix
>>> to the bo eviction for radeon has to be in radeon code and is mostly
>>> an overhaul of how we validate bo.
>>>
>>> But i still believe that this patch has value in itself by allowing
>>> driver to put a boundary on buffer movement frequency.
>>>
>>> Cheers,
>>> Jerome
>> So, a variation on John Carmack's recommendation from 2000 to use MRU,
>> not LRU, to avoid texture trashing.
>>
>> Mar 07, 2000 - Virtualized video card local memory is The Right Thing.
>> http://floodyberry.com/carmack/johnc_plan_2000.html
>>
>> In fact, this was last discussed in 2005 with a patch for a 1 second
>> stale texture eviction and I (still) wondered why a method it was never
>> implemented since it was an clear problem.
> BTW we can send end-of-frame markers to the kernel, which could be
> used to implement Carmack's algorithm.
>
> Marek
It seems to me like Carmack's algorithm is quite specific to the case
where only a single GL client is running?
It also seems like it's designed around the fact that when eviction
takes place, all buffer objects will be idle. With a
reasonably filled graphics fifo / ring, blindly using MRU will cause the
GPU to run synchronized.
/Thomas
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2012-11-29 8:04 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-28 15:58 [RFC] drm/ttm: add minimum residency constraint for bo eviction j.glisse
2012-11-28 15:58 ` [PATCH] " j.glisse
2012-11-28 23:18 ` Thomas Hellstrom
2012-11-28 23:24 ` Jerome Glisse
2012-11-28 23:44 ` Alan Swanson
2012-11-29 0:01 ` Jerome Glisse
2012-11-29 2:15 ` Marek Olšák
2012-11-29 8:04 ` Thomas Hellstrom [this message]
2012-11-29 12:52 ` Marek Olšák
2012-11-29 20:33 ` Thomas Hellstrom
2012-11-29 21:58 ` Marek Olšák
2012-11-30 8:38 ` Thomas Hellstrom
2012-11-30 9:39 ` Asynchronous eviction [WAS Re: [PATCH] drm/ttm: add minimum residency constraint for bo eviction] Thomas Hellstrom
2012-11-30 16:30 ` Jerome Glisse
2012-11-30 17:08 ` Thomas Hellstrom
2012-11-30 17:18 ` Jerome Glisse
2012-11-30 17:43 ` Thomas Hellstrom
2012-11-30 18:07 ` Jerome Glisse
2012-11-30 18:31 ` Thomas Hellstrom
2012-11-30 19:25 ` Jerome Glisse
2012-11-30 20:35 ` Thomas Hellstrom
2012-11-30 21:07 ` Jerome Glisse
2012-11-30 21:36 ` Thomas Hellstrom
2012-11-30 22:02 ` Jerome Glisse
2012-11-29 8:41 ` [PATCH] drm/ttm: add minimum residency constraint for bo eviction Thomas Hellstrom
2012-11-29 15:50 ` Jerome Glisse
2012-11-28 21:51 ` [RFC] " Marek Olšák
2012-11-28 23:18 ` Jerome Glisse
2012-11-29 9:18 ` Thomas Hellstrom
2012-11-29 9:28 ` Michel Dänzer
2012-11-29 9:48 ` Thomas Hellstrom
2012-11-29 19:20 ` Marek Olšák
2012-11-29 19:36 ` Jerome Glisse
2012-11-29 20:40 ` Thomas Hellstrom
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=50B71714.4060802@shipmail.org \
--to=thomas@shipmail.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jglisse@redhat.com \
--cc=maraeo@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox