From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Dave Airlie <airlied@gmail.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH] drm/ttm: fix incorrect TT->SYSTEM move handling
Date: Thu, 17 Sep 2020 10:12:46 +0200 [thread overview]
Message-ID: <d1e1b00d-3d40-46db-04f4-db8071dd9da2@gmail.com> (raw)
In-Reply-To: <CAPM=9tzGmwcDfLAxrzrFi29kcbn1prifaECc_kn7+5_-65mfnQ@mail.gmail.com>
Am 16.09.20 um 21:27 schrieb Dave Airlie:
> On Thu, 17 Sep 2020 at 00:24, Christian König
> <ckoenig.leichtzumerken@gmail.com> wrote:
>> When we move from the SYSTEM domain to the TT domain
>> we still need to potentially change the caching state.
>>
>> This is most likely the source of a bunch of problems with
>> AGP and USWC together with hibernation and swap.
> I'm going to need more commentary, because I've been staring at this
> code a lot in the past few days and I'm although I dislike this path,
> I'm not sure what this brings.
>
> The current code flow to me is for SYSTEM->TT domain
>
> ttm_tt_create
> ttm_tt_set_placement_caching (new placement)
> ttm_tt_bind (can cause populate)
> move_notify
> replace pointers
> evicted = false
> return
>
> The new flow looks like
> ttm_tt_create
> ttm_tt_set_placement_caching (new placement)
> ttm_tt_bind (can cause populate)
> move_notify
> (via ttm_bo_move_ttm)
> ttm_tt_set_placement_caching (new placement)
> ttm_tt_bind
> replace pointers
> (back to main code)
> evicted = false
> return
>
> Is the second set placement caching doing something different here? or
> is there something that happens in move notify that we need to set
> things afterwards?
Oh, I was blind. Haven't seen the call to ttm_tt_set_placement_caching()
directly before this one.
So forget this one, need to keep searching why hibernation doesn't work :(
Christian.
>
> Dave.
>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> CC: stable@vger.kernel.org
>> ---
>> drivers/gpu/drm/ttm/ttm_bo.c | 8 --------
>> 1 file changed, 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
>> index ffbdc20d8e8d..5f7efc90970e 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
>> @@ -264,13 +264,6 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
>> if (ret)
>> goto out_err;
>> }
>> -
>> - if (bo->mem.mem_type == TTM_PL_SYSTEM) {
>> - if (bdev->driver->move_notify)
>> - bdev->driver->move_notify(bo, evict, mem);
>> - bo->mem = *mem;
>> - goto moved;
>> - }
>> }
>>
>> if (bdev->driver->move_notify)
>> @@ -293,7 +286,6 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
>> goto out_err;
>> }
>>
>> -moved:
>> bo->evicted = false;
>>
>> ctx->bytes_moved += bo->num_pages << PAGE_SHIFT;
>> --
>> 2.17.1
>>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
prev parent reply other threads:[~2020-09-17 8:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-16 14:24 [PATCH] drm/ttm: fix incorrect TT->SYSTEM move handling Christian König
2020-09-16 14:49 ` Christian König
2020-09-16 19:27 ` Dave Airlie
2020-09-17 8:12 ` Christian König [this message]
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=d1e1b00d-3d40-46db-04f4-db8071dd9da2@gmail.com \
--to=ckoenig.leichtzumerken@gmail.com \
--cc=airlied@gmail.com \
--cc=christian.koenig@amd.com \
--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;
as well as URLs for NNTP newsgroup(s).