From: "Yang, Philip" <Philip.Yang-5C7GfCeVMHo@public.gmane.org>
To: "Kuehling, Felix" <Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>,
"amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH] drm/amdgpu: use new HMM APIs and helpers
Date: Fri, 31 May 2019 21:32:30 +0000 [thread overview]
Message-ID: <9ae26883-4326-c60f-9a8e-d95d0d458e31@amd.com> (raw)
In-Reply-To: <befbe7fa-0bd3-ffcf-d2eb-36f15053d1a5-5C7GfCeVMHo@public.gmane.org>
On 2019-05-31 3:42 p.m., Kuehling, Felix wrote:
> On 2019-05-31 1:28 p.m., Yang, Philip wrote:
>>
>> On 2019-05-30 6:36 p.m., Kuehling, Felix wrote:
>>>>
>>>> #if IS_ENABLED(CONFIG_DRM_AMDGPU_USERPTR)
>>>> - if (gtt->ranges &&
>>>> - ttm->pages[0] == hmm_pfn_to_page(>t->ranges[0],
>>>> - gtt->ranges[0].pfns[0]))
>>>> + if (gtt->range &&
>>>> + ttm->pages[0] == hmm_device_entry_to_page(gtt->range,
>>>> + gtt->range->pfns[0]))
>>> I think just checking gtt->range here is enough. If gtt->range is not
>>> NULL here, we're leaking memory.
>>>
>> If just checking gtt->range, there is a false warning in amdgpu_test
>> userptr case in amdgpu_cs_list_validate path. If userptr is invalidated,
>> then ttm->pages[0] is outdated pages, lobj->user_pages is new pages, it
>> goes to ttm_tt_unbind first to unpin old pages (this causes false
>> warning) then call amdgpu_ttm_tt_set_user_pages.
>
> But doesn't that mean we're leaking the gtt->range somewhere?
>
ttm_tt_unbind is called from ttm_tt_destroy and amdgpu_cs_list_validate,
the later one causes false warning. ttm_ttm_destory path is fine to only
check gtt->range.
Double checked, amdgpu_ttm_tt_get_user_pages and
amdgpu_ttm_tt_get_user_pages_done always match in both paths, so no leak
gtt->range.
1. amdgpu_gem_userptr_ioctl
amdgpu_ttm_tt_get_user_pages
ttm->pages for userptr pages
amdgpu_ttm_tt_get_user_pages_done
2. amdgpu_cs_ioctl
amdgpu_cs_parser_bos
amdgpu_ttm_tt_get_user_pages
if (userpage_invalidated)
e->user_pages for new pages
amdgpu_cs_list_validate
if (userpage_invalidated)
ttm_tt_unbind ttm->pages // this causes warning
amdgpu_ttm_tt_set_user_pages(ttm->pages, e->user_pages)
amdgpu_cs_submit
amdgpu_ttm_tt_get_user_pages_done
> Regards,
> Felix
>
>
>>
>> I will submit patch v2, to add retry if hmm_range_fault returns -EAGAIN.
>> use kzalloc to allocate small size range.
>>
>> Thanks,
>> Philip
>>
>>> Regards,
>>> Felix
>>>
>>>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2019-05-31 21:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-30 14:41 [PATCH] drm/amdgpu: use new HMM APIs and helpers Yang, Philip
[not found] ` <20190530144049.1996-1-Philip.Yang-5C7GfCeVMHo@public.gmane.org>
2019-05-30 22:36 ` Kuehling, Felix
[not found] ` <704410a5-be01-f423-11ef-01a640cd469c-5C7GfCeVMHo@public.gmane.org>
2019-05-31 17:28 ` Yang, Philip
[not found] ` <bd8f1fd6-f6c4-66fc-c0b9-c8ed36cd6027-5C7GfCeVMHo@public.gmane.org>
2019-05-31 19:42 ` Kuehling, Felix
[not found] ` <befbe7fa-0bd3-ffcf-d2eb-36f15053d1a5-5C7GfCeVMHo@public.gmane.org>
2019-05-31 21:32 ` Yang, Philip [this message]
[not found] ` <9ae26883-4326-c60f-9a8e-d95d0d458e31-5C7GfCeVMHo@public.gmane.org>
2019-05-31 22:01 ` Kuehling, Felix
[not found] ` <9f5f4060-5f8f-b688-2cc2-39aca92c7505-5C7GfCeVMHo@public.gmane.org>
2019-06-03 10:17 ` Christian König
[not found] ` <972ef129-3dae-d5eb-100f-b9be83d0afcc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-03 11:23 ` Christian König
[not found] ` <c20fba4e-f303-75b9-4bba-bdede43237aa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-03 15:38 ` Yang, Philip
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=9ae26883-4326-c60f-9a8e-d95d0d458e31@amd.com \
--to=philip.yang-5c7gfcevmho@public.gmane.org \
--cc=Felix.Kuehling-5C7GfCeVMHo@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.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