Re: [PATCH] drm/sched: Use struct for drm_sched_init() params

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 23/01/2025 09:35, Philipp Stanner wrote:
On Thu, 2025-01-23 at 10:29 +0100, Danilo Krummrich wrote:
On Thu, Jan 23, 2025 at 08:33:01AM +0100, Philipp Stanner wrote:
On Wed, 2025-01-22 at 18:16 +0100, Boris Brezillon wrote:
On Wed, 22 Jan 2025 15:08:20 +0100
Philipp Stanner <phasta@xxxxxxxxxx> wrote:

  int drm_sched_init(struct drm_gpu_scheduler *sched,
-    const struct drm_sched_backend_ops *ops,
-    struct workqueue_struct *submit_wq,
-    u32 num_rqs, u32 credit_limit, unsigned int hang_limit,
-    long timeout, struct workqueue_struct *timeout_wq,
-    atomic_t *score, const char *name, struct device *dev);
+ const struct drm_sched_init_params *params);


Another nit: indenting is messed up here.

That was done on purpose.

Let's not change this convention, it's used all over the kernel tree,
including
the GPU scheduler. People are used to read code that is formatted
this way, plus
the attempt of changing it will make code formatting inconsistent.

Both the tree and this file are already inconsistent in regards to
this.

Anyways, what is your proposed solution to ridiculous nonsense like
this?

https://elixir.bootlin.com/linux/v6.13-rc3/source/drivers/gpu/drm/scheduler/sched_main.c#L1296

Apologies for budging in. Sometimes breaking 80 cols is unavoidable, or perhaps something like the below would be a bit easier on the eyes? Although it still breaks 80 columns, just a bit less.

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 06b06987129d..3f7e97b240d1 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -1287,22 +1287,18 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
                return 0;
        }

-       if (submit_wq) {
-               sched->submit_wq = submit_wq;
-               sched->own_submit_wq = false;
-       } else {
-#ifdef CONFIG_LOCKDEP
-               sched->submit_wq = alloc_ordered_workqueue_lockdep_map(name,
- WQ_MEM_RECLAIM, - &drm_sched_lockdep_map);
-#else
- sched->submit_wq = alloc_ordered_workqueue(name, WQ_MEM_RECLAIM);
-#endif
-               if (!sched->submit_wq)
-                       return -ENOMEM;
+       own_wq = !!submit_wq;
+       if (!submit_wq && IS_ENABLED(CONFIG_LOCKDEP))
+               submit_wq = alloc_ordered_workqueue_lockdep_map(name,
+ WQ_MEM_RECLAIM, + &drm_sched_lockdep_map);
+       else if (!submit_wq)
+               submit_wq = alloc_ordered_workqueue(name, WQ_MEM_RECLAIM);
+       if (!submit_wq)
+               return -ENOMEM;

-               sched->own_submit_wq = true;
-       }
+       sched->submit_wq = submit_wq;
+       sched->own_submit_wq = own_wq;

        sched->sched_rq = kmalloc_array(num_rqs, sizeof(*sched->sched_rq),
                                        GFP_KERNEL | __GFP_ZERO);

Could bring it under 80 by renaming drm_sched_lockdep_map to something shorter. Which should be fine since it is local to the file.

Regards,

Tvrtko



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux