AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Jerry (Junwei)" <Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
To: "Christian König" <christian.koenig-5C7GfCeVMHo@public.gmane.org>,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [PATCH] drm/amdgpu: fix NULL pointer dereference when run App with DRI_PRIME=1
Date: Fri, 25 May 2018 16:23:35 +0800	[thread overview]
Message-ID: <5B07C807.4050806@amd.com> (raw)
In-Reply-To: <2a876b66-abaa-5ca0-5975-2b458ab9dba5-5C7GfCeVMHo@public.gmane.org>

On 05/25/2018 03:54 PM, Christian König wrote:
> Am 25.05.2018 um 09:20 schrieb Zhang, Jerry (Junwei):
>> On 05/25/2018 02:44 PM, Christian König wrote:
>>> NAK, that probably just fixed the symptom but not the underlying problem.
>>>
>>> Somebody is accessing the page array when it should never be accessed.
>>
>> If prime import as GTT bo by default(now it's CPU bo), it would happens
>> quickly when GTT sg bo creation rather than next cs validation.
>>
>> Since ttm_sg_tt_init() only allocates gtt->ttm.dma_address if sg bo is
>> created, it would fail to access ttm->pages when ttm populate.
>
> And exactly that's the problem, and imported BO should never populate.
>
>>
>> current error happens in ttm populate from cs validation, the sg bo is
>> imported from exporter.
>>
>>>
>>> How did you manage to trigger this?
>>
>> PRI_PRIME=1 with Unigine heaven.
>
> Going to give that a try, but the last time I check that worked as expected.

FYI.
PRI_PRIME=1 glxinfo will not trigger that, but the game does.

Jerry

>
> Thanks,
> Christian.
>
>>
>> Regards,
>> Jerry
>>
>>>
>>> Regards,
>>> Christian.
>>>
>>> Am 25.05.2018 um 07:41 schrieb Junwei Zhang:
>>>> [  632.679861] BUG: unable to handle kernel NULL pointer dereference at (null)
>>>> [  632.679892] IP: drm_prime_sg_to_page_addr_arrays+0x52/0xb0 [drm]
>>>> <snip>
>>>> [  632.680011] Call Trace:
>>>> [  632.680082]  amdgpu_ttm_tt_populate+0x3e/0xa0 [amdgpu]
>>>> [  632.680092]  ttm_tt_populate.part.7+0x22/0x60 [amdttm]
>>>> [  632.680098]  amdttm_tt_bind+0x52/0x60 [amdttm]
>>>> [  632.680106]  ttm_bo_handle_move_mem+0x54b/0x5c0 [amdttm]
>>>> [  632.680112]  ? find_next_bit+0xb/0x10
>>>> [  632.680119]  amdttm_bo_validate+0x11d/0x130 [amdttm]
>>>> [  632.680176]  amdgpu_cs_bo_validate+0x9d/0x150 [amdgpu]
>>>> [  632.680232]  amdgpu_cs_validate+0x41/0x270 [amdgpu]
>>>> [  632.680288]  amdgpu_cs_list_validate+0xc7/0x1a0 [amdgpu]
>>>> [  632.680343]  amdgpu_cs_ioctl+0x1634/0x1c00 [amdgpu]
>>>> [  632.680401]  ? amdgpu_cs_find_mapping+0x120/0x120 [amdgpu]
>>>> [  632.680416]  drm_ioctl_kernel+0x6b/0xb0 [drm]
>>>> [  632.680431]  drm_ioctl+0x3e4/0x450 [drm]
>>>> [  632.680485]  ? amdgpu_cs_find_mapping+0x120/0x120 [amdgpu]
>>>> [  632.680537]  amdgpu_drm_ioctl+0x4c/0x80 [amdgpu]
>>>> [  632.680542]  do_vfs_ioctl+0xa4/0x600
>>>> [  632.680546]  ? SyS_futex+0x7f/0x180
>>>> [  632.680549]  SyS_ioctl+0x79/0x90
>>>> [  632.680554]  entry_SYSCALL_64_fastpath+0x24/0xab
>>>>
>>>> Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>>> index 57d4da6..b293809 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>>>> @@ -1212,7 +1212,7 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct
>>>> ttm_buffer_object *bo,
>>>>       gtt->ttm.ttm.func = &amdgpu_backend_func;
>>>>       /* allocate space for the uninitialized page entries */
>>>> -    if (ttm_sg_tt_init(&gtt->ttm, bo, page_flags)) {
>>>> +    if (ttm_dma_tt_init(&gtt->ttm, bo, page_flags)) {
>>>>           kfree(gtt);
>>>>           return NULL;
>>>>       }
>>>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-05-25  8:23 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-25  5:41 [PATCH] drm/amdgpu: fix NULL pointer dereference when run App with DRI_PRIME=1 Junwei Zhang
     [not found] ` <1527226896-29270-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
2018-05-25  6:44   ` Christian König
     [not found]     ` <f9495673-cb9a-cd75-a569-c4eb5b2e0c63-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-05-25  7:20       ` Zhang, Jerry (Junwei)
     [not found]         ` <5B07B933.4060701-5C7GfCeVMHo@public.gmane.org>
2018-05-25  7:54           ` Christian König
     [not found]             ` <2a876b66-abaa-5ca0-5975-2b458ab9dba5-5C7GfCeVMHo@public.gmane.org>
2018-05-25  8:23               ` Zhang, Jerry (Junwei) [this message]
     [not found]                 ` <5B07C807.4050806-5C7GfCeVMHo@public.gmane.org>
2018-05-25  9:35                   ` Christian König
     [not found]                     ` <98ef8cf3-31bf-229b-fee2-88f426e3a91f-5C7GfCeVMHo@public.gmane.org>
2018-05-25  9:51                       ` Zhang, Jerry (Junwei)
     [not found]                         ` <5B07DCAA.509-5C7GfCeVMHo@public.gmane.org>
2018-05-25 11:23                           ` Christian König
     [not found]                             ` <31572675-9d62-2acf-5cbf-7a389ac87554-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-05-28  7:23                               ` Zhang, Jerry (Junwei)

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=5B07C807.4050806@amd.com \
    --to=jerry.zhang-5c7gfcevmho@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=christian.koenig-5C7GfCeVMHo@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