All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Grodzovsky, Andrey" <Andrey.Grodzovsky-5C7GfCeVMHo@public.gmane.org>
To: "Koenig,
	Christian" <Christian.Koenig-5C7GfCeVMHo@public.gmane.org>,
	"S, Shirish" <Shirish.S-5C7GfCeVMHo@public.gmane.org>,
	"Deucher,
	Alexander" <Alexander.Deucher-5C7GfCeVMHo@public.gmane.org>
Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH] drm/amdgpu: guard ib scheduling while in reset
Date: Wed, 30 Oct 2019 15:05:27 +0000	[thread overview]
Message-ID: <4664369b-65bb-fb43-3d52-bdb03fc47478@amd.com> (raw)
In-Reply-To: <90eb8377-82c4-968a-82f0-1409f69c17e5-5C7GfCeVMHo@public.gmane.org>

I see.

OK, I will add to myself a TODO about struct completion approach.

Andrey

On 10/30/19 11:00 AM, Koenig, Christian wrote:
> Yeah, and exactly that's the problem :) You need a global lock covering
> all schedulers.
>
> Otherwise you end up in hell's kitchen again with taking all those locks
> in the right order.
>
> Christian.
>
> Am 30.10.19 um 15:56 schrieb Grodzovsky, Andrey:
>> Can you elaborate on what is the tricky part with the lock ? I assumed
>> we just use per scheduler lock.
>>
>> Andrey
>>
>> On 10/30/19 10:50 AM, Christian König wrote:
>>> A lock inside the scheduler is rather tricky to implement.
>>>
>>> What you need to do is to get rid of the park()/unpark() hack in
>>> drm_sched_entity_fini().
>>>
>>> We could do this with a struct completion or convert the scheduler
>>> from a thread to a work item.
>>>
>>> Regards,
>>> Christian.
>>>
>>> Am 30.10.19 um 15:44 schrieb Grodzovsky, Andrey:
>>>> That good  as proof of RCA but I still think we should grab a dedicated
>>>> lock inside scheduler since the race is internal to scheduler code so
>>>> this better to handle it inside the scheduler code to make the fix apply
>>>> for all drivers using it.
>>>>
>>>> Andrey
>>>>
>>>> On 10/30/19 4:44 AM, S, Shirish wrote:
>>>>>>>> We still have it and isn't doing kthread_park()/unpark() from
>>>>>>>> drm_sched_entity_fini while GPU reset in progress defeats all the
>>>>>>>> purpose of drm_sched_stop->kthread_park ? If
>>>>>>>> drm_sched_entity_fini-> kthread_unpark happens AFTER
>>>>>>>> drm_sched_stop->kthread_park nothing prevents from another (third)
>>>>>>>> thread keep submitting job to HW which will be picked up by the
>>>>>>>> unparked scheduler thread try to submit to HW but fail because the
>>>>>>>> HW ring is deactivated.
>>>>>>>>
>>>>>>>> If so maybe we should serialize calls to
>>>>>>>> kthread_park/unpark(sched->thread) ?
>>>>>>>>
>>>>>>> Yeah, that was my thinking as well. Probably best to just grab the
>>>>>>> reset lock before calling drm_sched_entity_fini().
>>>>>> Shirish - please try locking &adev->lock_reset around calls to
>>>>>> drm_sched_entity_fini as Christian suggests and see if this actually
>>>>>> helps the issue.
>>>>>>
>>>>> Yes that also works.
>>>>>
>>>>> Regards,
>>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

WARNING: multiple messages have this Message-ID (diff)
From: "Grodzovsky, Andrey" <Andrey.Grodzovsky@amd.com>
To: "Koenig, Christian" <Christian.Koenig@amd.com>,
	"S, Shirish" <Shirish.S@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>
Cc: "amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/amdgpu: guard ib scheduling while in reset
Date: Wed, 30 Oct 2019 15:05:27 +0000	[thread overview]
Message-ID: <4664369b-65bb-fb43-3d52-bdb03fc47478@amd.com> (raw)
Message-ID: <20191030150527.h3ElC-drzAA914tGRiOHVZZZVYaTriXs_P0U3iSXHa0@z> (raw)
In-Reply-To: <90eb8377-82c4-968a-82f0-1409f69c17e5@amd.com>

I see.

OK, I will add to myself a TODO about struct completion approach.

Andrey

On 10/30/19 11:00 AM, Koenig, Christian wrote:
> Yeah, and exactly that's the problem :) You need a global lock covering
> all schedulers.
>
> Otherwise you end up in hell's kitchen again with taking all those locks
> in the right order.
>
> Christian.
>
> Am 30.10.19 um 15:56 schrieb Grodzovsky, Andrey:
>> Can you elaborate on what is the tricky part with the lock ? I assumed
>> we just use per scheduler lock.
>>
>> Andrey
>>
>> On 10/30/19 10:50 AM, Christian König wrote:
>>> A lock inside the scheduler is rather tricky to implement.
>>>
>>> What you need to do is to get rid of the park()/unpark() hack in
>>> drm_sched_entity_fini().
>>>
>>> We could do this with a struct completion or convert the scheduler
>>> from a thread to a work item.
>>>
>>> Regards,
>>> Christian.
>>>
>>> Am 30.10.19 um 15:44 schrieb Grodzovsky, Andrey:
>>>> That good  as proof of RCA but I still think we should grab a dedicated
>>>> lock inside scheduler since the race is internal to scheduler code so
>>>> this better to handle it inside the scheduler code to make the fix apply
>>>> for all drivers using it.
>>>>
>>>> Andrey
>>>>
>>>> On 10/30/19 4:44 AM, S, Shirish wrote:
>>>>>>>> We still have it and isn't doing kthread_park()/unpark() from
>>>>>>>> drm_sched_entity_fini while GPU reset in progress defeats all the
>>>>>>>> purpose of drm_sched_stop->kthread_park ? If
>>>>>>>> drm_sched_entity_fini-> kthread_unpark happens AFTER
>>>>>>>> drm_sched_stop->kthread_park nothing prevents from another (third)
>>>>>>>> thread keep submitting job to HW which will be picked up by the
>>>>>>>> unparked scheduler thread try to submit to HW but fail because the
>>>>>>>> HW ring is deactivated.
>>>>>>>>
>>>>>>>> If so maybe we should serialize calls to
>>>>>>>> kthread_park/unpark(sched->thread) ?
>>>>>>>>
>>>>>>> Yeah, that was my thinking as well. Probably best to just grab the
>>>>>>> reset lock before calling drm_sched_entity_fini().
>>>>>> Shirish - please try locking &adev->lock_reset around calls to
>>>>>> drm_sched_entity_fini as Christian suggests and see if this actually
>>>>>> helps the issue.
>>>>>>
>>>>> Yes that also works.
>>>>>
>>>>> Regards,
>>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2019-10-30 15:05 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-24 10:58 [PATCH] drm/amdgpu: guard ib scheduling while in reset S, Shirish
2019-10-24 10:58 ` S, Shirish
     [not found] ` <1571914692-9430-1-git-send-email-shirish.s-5C7GfCeVMHo@public.gmane.org>
2019-10-24 11:01   ` Christian König
2019-10-24 11:01     ` Christian König
     [not found]     ` <23ea615d-5ef4-d0b3-a0ec-6fae67b102f2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-10-24 15:06       ` Grodzovsky, Andrey
2019-10-24 15:06         ` Grodzovsky, Andrey
     [not found]         ` <f3be329d-d350-c821-00b7-d94858335796-5C7GfCeVMHo@public.gmane.org>
2019-10-24 16:30           ` Christian König
2019-10-24 16:30             ` Christian König
     [not found]             ` <d573688c-0997-1928-0c56-b60a29ff7fde-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-10-25  8:50               ` S, Shirish
2019-10-25  8:50                 ` S, Shirish
     [not found]                 ` <b5e99dc3-5658-7e48-63f7-bf9533f582f8-5C7GfCeVMHo@public.gmane.org>
2019-10-25  8:53                   ` Koenig, Christian
2019-10-25  8:53                     ` Koenig, Christian
     [not found]                     ` <2505c476-9e10-f70e-355c-33765a37d607-5C7GfCeVMHo@public.gmane.org>
2019-10-25  9:22                       ` S, Shirish
2019-10-25  9:22                         ` S, Shirish
     [not found]                         ` <a1c31f37-128f-51b1-f747-fe75d78d4214-5C7GfCeVMHo@public.gmane.org>
2019-10-25  9:26                           ` Koenig, Christian
2019-10-25  9:26                             ` Koenig, Christian
     [not found]                             ` <a9789f76-3ba5-ad71-1507-5eac6f589b82-5C7GfCeVMHo@public.gmane.org>
2019-10-25 10:08                               ` S, Shirish
2019-10-25 10:08                                 ` S, Shirish
     [not found]                                 ` <b9a72ccf-4d71-a2b9-63da-e5c19e9fbba6-5C7GfCeVMHo@public.gmane.org>
2019-10-25 10:32                                   ` Koenig, Christian
2019-10-25 10:32                                     ` Koenig, Christian
2019-10-25 15:35                               ` Grodzovsky, Andrey
2019-10-25 15:35                                 ` Grodzovsky, Andrey
     [not found]                                 ` <971115b1-6208-1dd5-d99f-c9377663a80b-5C7GfCeVMHo@public.gmane.org>
2019-10-25 15:57                                   ` Koenig, Christian
2019-10-25 15:57                                     ` Koenig, Christian
     [not found]                                     ` <2e2ebf73-9a25-5ad2-78e7-07c8b1db1b37-5C7GfCeVMHo@public.gmane.org>
2019-10-25 16:02                                       ` Grodzovsky, Andrey
2019-10-25 16:02                                         ` Grodzovsky, Andrey
     [not found]                                         ` <08e3c44f-5d08-d5f5-bc76-ea9b77032e5a-5C7GfCeVMHo@public.gmane.org>
2019-10-30  8:44                                           ` S, Shirish
2019-10-30  8:44                                             ` S, Shirish
     [not found]                                             ` <1e1d0b06-75ab-160c-a6c7-baede02f1e7d-5C7GfCeVMHo@public.gmane.org>
2019-10-30 14:44                                               ` Grodzovsky, Andrey
2019-10-30 14:44                                                 ` Grodzovsky, Andrey
     [not found]                                                 ` <f5b7aeff-c4ce-fa2f-1390-e8892fa7a964-5C7GfCeVMHo@public.gmane.org>
2019-10-30 14:50                                                   ` Christian König
2019-10-30 14:50                                                     ` Christian König
     [not found]                                                     ` <d73c46e2-ed85-f56e-3a2a-cbf2919d0a3f-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-10-30 14:56                                                       ` Grodzovsky, Andrey
2019-10-30 14:56                                                         ` Grodzovsky, Andrey
     [not found]                                                         ` <d881fbbe-5fb1-ea68-6490-d08d81c865dd-5C7GfCeVMHo@public.gmane.org>
2019-10-30 15:00                                                           ` Koenig, Christian
2019-10-30 15:00                                                             ` Koenig, Christian
     [not found]                                                             ` <90eb8377-82c4-968a-82f0-1409f69c17e5-5C7GfCeVMHo@public.gmane.org>
2019-10-30 15:05                                                               ` Grodzovsky, Andrey [this message]
2019-10-30 15:05                                                                 ` Grodzovsky, Andrey

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=4664369b-65bb-fb43-3d52-bdb03fc47478@amd.com \
    --to=andrey.grodzovsky-5c7gfcevmho@public.gmane.org \
    --cc=Alexander.Deucher-5C7GfCeVMHo@public.gmane.org \
    --cc=Christian.Koenig-5C7GfCeVMHo@public.gmane.org \
    --cc=Shirish.S-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 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.