Am 04.08.2018 06:12, schrieb Dieter Nützel: > Am 04.08.2018 05:27, schrieb Dieter Nützel: >> Am 03.08.2018 13:09, schrieb Christian König: >>> Am 03.08.2018 um 03:08 schrieb Dieter Nützel: >>>> Hello Christian, AMD guys, >>>> >>>> this one _together_ with these series >>>> [PATCH 1/7] drm/amdgpu: use new scheduler load balancing for VMs >>>> https://lists.freedesktop.org/archives/amd-gfx/2018-August/024802.html >>>> >>>> on top of >>>> amd-staging-drm-next 53d5f1e4a6d9 >>>> >>>> freeze whole system (Intel Xeon X3470, RX580) during _first_ mouse >>>> move. >>>> Same for sddm login or first move in KDE Plasma 5. >>>> NO logs so far. - Expected? >>> >>> Not even remotely, can you double check which patch from the "[PATCH >>> 1/7] drm/amdgpu: use new scheduler load balancing for VMs" series is >>> causing the issue? >> >> Ups, >> >> _both_ 'series' on top of >> >> bf1fd52b0632 (origin/amd-staging-drm-next) drm/amdgpu: move gem >> definitions into amdgpu_gem header >> >> works without a hitch. >> >> But I have new (latest) µcode from openSUSE Tumbleweed. >> kernel-firmware-20180730-35.1.src.rpm >> >> Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de> > > I take this back. > > Last much longer. > Mouse freeze. > Could grep a dmesg with remote phone ;-) > > See the attachment. > Dieter Argh, shi... wrong dmesg version. Should be this one. (For sure...) Dieter >> >>> Thanks, >>> Christian. >>> >>>> >>>> Greetings, >>>> Dieter >>>> >>>> Am 01.08.2018 16:27, schrieb Christian König: >>>>> Since we now deal with multiple rq we need to update all of them, >>>>> not >>>>> just the current one. >>>>> >>>>> Signed-off-by: Christian König <christian.koenig at amd.com> >>>>> --- >>>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c  | 3 +-- >>>>>  drivers/gpu/drm/scheduler/gpu_scheduler.c | 36 >>>>> ++++++++++++++++++++----------- >>>>>  include/drm/gpu_scheduler.h              | 5 ++--- >>>>>  3 files changed, 26 insertions(+), 18 deletions(-) >>>>> >>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c >>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c >>>>> index df6965761046..9fcc14e2dfcf 100644 >>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c >>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c >>>>> @@ -407,12 +407,11 @@ void amdgpu_ctx_priority_override(struct >>>>> amdgpu_ctx *ctx, >>>>>     for (i = 0; i < adev->num_rings; i++) { >>>>>         ring = adev->rings[i]; >>>>>         entity = &ctx->rings[i].entity; >>>>> -       rq = &ring->sched.sched_rq[ctx_prio]; >>>>> >>>>>         if (ring->funcs->type == AMDGPU_RING_TYPE_KIQ) >>>>>             continue; >>>>> >>>>> -       drm_sched_entity_set_rq(entity, rq); >>>>> +       drm_sched_entity_set_priority(entity, ctx_prio); >>>>>     } >>>>>  } >>>>> >>>>> diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler.c >>>>> b/drivers/gpu/drm/scheduler/gpu_scheduler.c >>>>> index 05dc6ecd4003..85908c7f913e 100644 >>>>> --- a/drivers/gpu/drm/scheduler/gpu_scheduler.c >>>>> +++ b/drivers/gpu/drm/scheduler/gpu_scheduler.c >>>>> @@ -419,29 +419,39 @@ static void drm_sched_entity_clear_dep(struct >>>>> dma_fence *f, struct dma_fence_cb >>>>>  } >>>>> >>>>>  /** >>>>> - * drm_sched_entity_set_rq - Sets the run queue for an entity >>>>> + * drm_sched_entity_set_rq_priority - helper for >>>>> drm_sched_entity_set_priority >>>>> + */ >>>>> +static void drm_sched_entity_set_rq_priority(struct drm_sched_rq >>>>> **rq, >>>>> +                        enum drm_sched_priority priority) >>>>> +{ >>>>> +   *rq = &(*rq)->sched->sched_rq[priority]; >>>>> +} >>>>> + >>>>> +/** >>>>> + * drm_sched_entity_set_priority - Sets priority of the entity >>>>>  * >>>>>  * @entity: scheduler entity >>>>> - * @rq: scheduler run queue >>>>> + * @priority: scheduler priority >>>>>  * >>>>> - * Sets the run queue for an entity and removes the entity from >>>>> the previous >>>>> - * run queue in which was present. >>>>> + * Update the priority of runqueus used for the entity. >>>>>  */ >>>>> -void drm_sched_entity_set_rq(struct drm_sched_entity *entity, >>>>> -                struct drm_sched_rq *rq) >>>>> +void drm_sched_entity_set_priority(struct drm_sched_entity >>>>> *entity, >>>>> +                  enum drm_sched_priority priority) >>>>>  { >>>>> -   if (entity->rq == rq) >>>>> -       return; >>>>> - >>>>> -   BUG_ON(!rq); >>>>> +   unsigned int i; >>>>> >>>>>     spin_lock(&entity->rq_lock); >>>>> + >>>>> +   for (i = 0; i < entity->num_rq_list; ++i) >>>>> + drm_sched_entity_set_rq_priority(&entity->rq_list[i], priority); >>>>> + >>>>>     drm_sched_rq_remove_entity(entity->rq, entity); >>>>> -   entity->rq = rq; >>>>> -   drm_sched_rq_add_entity(rq, entity); >>>>> +   drm_sched_entity_set_rq_priority(&entity->rq, priority); >>>>> +   drm_sched_rq_add_entity(entity->rq, entity); >>>>> + >>>>>     spin_unlock(&entity->rq_lock); >>>>>  } >>>>> -EXPORT_SYMBOL(drm_sched_entity_set_rq); >>>>> +EXPORT_SYMBOL(drm_sched_entity_set_priority); >>>>> >>>>>  /** >>>>>  * drm_sched_dependency_optimized >>>>> diff --git a/include/drm/gpu_scheduler.h >>>>> b/include/drm/gpu_scheduler.h >>>>> index 0c4cfe689d4c..22c0f88f7d8f 100644 >>>>> --- a/include/drm/gpu_scheduler.h >>>>> +++ b/include/drm/gpu_scheduler.h >>>>> @@ -298,9 +298,8 @@ void drm_sched_entity_fini(struct >>>>> drm_sched_entity *entity); >>>>>  void drm_sched_entity_destroy(struct drm_sched_entity *entity); >>>>>  void drm_sched_entity_push_job(struct drm_sched_job *sched_job, >>>>>                    struct drm_sched_entity *entity); >>>>> -void drm_sched_entity_set_rq(struct drm_sched_entity *entity, >>>>> -                struct drm_sched_rq *rq); >>>>> - >>>>> +void drm_sched_entity_set_priority(struct drm_sched_entity >>>>> *entity, >>>>> +                  enum drm_sched_priority priority); >>>>>  struct drm_sched_fence *drm_sched_fence_create( >>>>>     struct drm_sched_entity *s_entity, void *owner); >>>>>  void drm_sched_fence_scheduled(struct drm_sched_fence *fence); >> _______________________________________________ >> dri-devel mailing list >> dri-devel at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: dmesg-4.18.0-rc1-1.g7262353-default+04.08.log URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180804/46c0299f/attachment-0001.ksh>