sched,msm: Convert to sched_set_fifo*()
authorPeter Zijlstra <peterz@infradead.org>
Tue, 21 Apr 2020 10:09:13 +0000 (12:09 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 12:10:21 +0000 (14:10 +0200)
Because SCHED_FIFO is a broken scheduler model (see previous patches)
take away the priority field, the kernel can't possibly make an
informed decision.

Use sched_set_fifo(); Effectively changes prio from 16 to 50.

Cc: airlied@redhat.com
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
drivers/gpu/drm/msm/msm_drv.c

index f6ce40bf36998633dbadfc75626a6600e210b9dc..89a8b9c7e044ca45a8ade6fab36d8e2d9094a98f 100644 (file)
@@ -389,7 +389,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
        struct msm_kms *kms;
        struct msm_mdss *mdss;
        int ret, i;
-       struct sched_param param;
 
        ddev = drm_dev_alloc(drv, dev);
        if (IS_ERR(ddev)) {
@@ -495,12 +494,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
        ddev->mode_config.funcs = &mode_config_funcs;
        ddev->mode_config.helper_private = &mode_config_helper_funcs;
 
-       /**
-        * this priority was found during empiric testing to have appropriate
-        * realtime scheduling to process display updates and interact with
-        * other real time and normal priority task
-        */
-       param.sched_priority = 16;
        for (i = 0; i < priv->num_crtcs; i++) {
                /* initialize event thread */
                priv->event_thread[i].crtc_id = priv->crtcs[i]->base.id;
@@ -516,8 +509,7 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
                        goto err_msm_uninit;
                }
 
-               ret = sched_setscheduler(priv->event_thread[i].thread,
-                                        SCHED_FIFO, &param);
+               ret = sched_set_fifo(priv->event_thread[i].thread);
                if (ret)
                        dev_warn(dev, "event_thread set priority failed:%d\n",
                                 ret);