Hi,

On 2023-10-26 02:33, kernel test robot wrote:
> Hi Matthew,
> 
> kernel test robot noticed the following build warnings:
> 
> [auto build test WARNING on 201c8a7bd1f3f415920a2df4b8a8817e973f42fe]
> 
> url:    
> https://github.com/intel-lab-lkp/linux/commits/Matthew-Brost/drm-sched-Add-drm_sched_wqueue_-helpers/20231026-121313
> base:   201c8a7bd1f3f415920a2df4b8a8817e973f42fe
> patch link:    
> https://lore.kernel.org/r/20231026041236.1273694-4-matthew.brost%40intel.com
> patch subject: [PATCH v7 3/6] drm/sched: Convert the GPU scheduler to 
> variable number of run-queues
> config: m68k-allyesconfig 
> (https://download.01.org/0day-ci/archive/20231026/202310261439.3rbateob-...@intel.com/config)
> compiler: m68k-linux-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): 
> (https://download.01.org/0day-ci/archive/20231026/202310261439.3rbateob-...@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version 
> of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <l...@intel.com>
> | Closes: 
> https://lore.kernel.org/oe-kbuild-all/202310261439.3rbateob-...@intel.com/
> 
> All warnings (new ones prefixed by >>):
> 
>    drivers/gpu/drm/etnaviv/etnaviv_sched.c: In function 'etnaviv_sched_init':
>>> drivers/gpu/drm/etnaviv/etnaviv_sched.c:138:30: warning: passing argument 3 
>>> of 'drm_sched_init' makes pointer from integer without a cast 
>>> [-Wint-conversion]
>      138 |                              DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                              ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                              |
>          |                              int
>    In file included from drivers/gpu/drm/etnaviv/etnaviv_drv.h:20,
>                     from drivers/gpu/drm/etnaviv/etnaviv_sched.c:8:
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>    In file included from include/uapi/linux/posix_types.h:5,
>                     from include/uapi/linux/types.h:14,
>                     from include/linux/types.h:6,
>                     from include/linux/kasan-checks.h:5,
>                     from include/asm-generic/rwonce.h:26,
>                     from ./arch/m68k/include/generated/asm/rwonce.h:1,
>                     from include/linux/compiler.h:246,
>                     from include/linux/build_bug.h:5,
>                     from include/linux/init.h:5,
>                     from include/linux/moduleparam.h:5,
>                     from drivers/gpu/drm/etnaviv/etnaviv_sched.c:6:

The reason for this compilation failure is that this patch is completely 
mangled and nothing like the patch I posted.

My patch is: 
https://lore.kernel.org/all/20231023032251.164775-1-luben.tui...@amd.com/

Save it raw to your disk from this link: 
https://lore.kernel.org/all/20231023032251.164775-1-luben.tui...@amd.com/raw

And apply it with "git am <file-name>" on top of your clean tree, e.g. 
drm-misc-next. THEN, after that,
apply your patches.

It should then compile without any problems.

Just looking at the first hunk in my patch:

> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 2b8356699f235d..251995a90bbe69 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2280,6 +2280,7 @@ static int amdgpu_device_init_schedulers(struct 
> amdgpu_device *adev)
>                 }
>  
>                 r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
> +                                  DRM_SCHED_PRIORITY_COUNT,
>                                    ring->num_hw_submission, 0,
>                                    timeout, adev->reset_domain->wq,
>                                    ring->sched_score, ring->name,

While this looks like this in the version you posted of my patch:

> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index b54c4d771104..94d073bfbd13 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2280,6 +2280,7 @@ static int amdgpu_device_init_schedulers(struct 
> amdgpu_device *adev)
>               }
>  
>               r = drm_sched_init(&ring->sched, &amdgpu_sched_ops, NULL,
> +                                DRM_SCHED_PRIORITY_COUNT,
>                                  ring->num_hw_submission, 0,
>                                  timeout, adev->reset_domain->wq,
>                                  ring->sched_score, ring->name,

What's that "NULL" doing as the 3rd argument???

And the rest is similarly mangled as well.

Please apply my patch AS IS, no local changes, and then apply your patches on 
top. That should ensure compilation is correct for all,
and a more precise review can be had.

FWIW, we should've had dynamic sched_rq from the outset as opposed to having to 
have my patch that now. So imagine that you already
have a branch which has dynamic sched_rq, and then you apply your 
patches--should be a more straightforward and clean application.

Regards,
Luben

>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/etnaviv/etnaviv_sched.c:138:56: note: in expansion of 
> macro 'NULL'
>      138 |                              DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                                                        ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
> --
>    drivers/gpu/drm/lima/lima_sched.c: In function 'lima_sched_pipe_init':
>>> drivers/gpu/drm/lima/lima_sched.c:492:31: warning: passing argument 3 of 
>>> 'drm_sched_init' makes pointer from integer without a cast 
>>> [-Wint-conversion]
>      492 |                               DRM_SCHED_PRIORITY_COUNT, NULL, 1,
>          |                               ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                               |
>          |                               int
>    In file included from drivers/gpu/drm/lima/lima_sched.h:7,
>                     from drivers/gpu/drm/lima/lima_device.h:12,
>                     from drivers/gpu/drm/lima/lima_ctx.h:10,
>                     from drivers/gpu/drm/lima/lima_drv.h:9,
>                     from drivers/gpu/drm/lima/lima_sched.c:11:
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>    In file included from include/uapi/linux/posix_types.h:5,
>                     from include/uapi/linux/types.h:14,
>                     from include/linux/types.h:6,
>                     from include/linux/io.h:9,
>                     from include/linux/iosys-map.h:10,
>                     from drivers/gpu/drm/lima/lima_sched.c:4:
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/lima/lima_sched.c:492:57: note: in expansion of macro 
> 'NULL'
>      492 |                               DRM_SCHED_PRIORITY_COUNT, NULL, 1,
>          |                                                         ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
> --
>    drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>> drivers/gpu/drm/v3d/v3d_sched.c:391:50: warning: passing argument 3 of 
>>> 'drm_sched_init' makes pointer from integer without a cast 
>>> [-Wint-conversion]
>      391 |                              &v3d_bin_sched_ops, 
> DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                                                  
> ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                                                  |
>          |                                                  int
>    In file included from drivers/gpu/drm/v3d/v3d_drv.h:12,
>                     from drivers/gpu/drm/v3d/v3d_sched.c:23:
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>    In file included from include/uapi/linux/posix_types.h:5,
>                     from include/uapi/linux/types.h:14,
>                     from include/linux/types.h:6,
>                     from include/linux/kasan-checks.h:5,
>                     from include/asm-generic/rwonce.h:26,
>                     from ./arch/m68k/include/generated/asm/rwonce.h:1,
>                     from include/linux/compiler.h:246,
>                     from include/linux/err.h:5,
>                     from include/linux/kthread.h:5,
>                     from drivers/gpu/drm/v3d/v3d_sched.c:21:
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/v3d/v3d_sched.c:391:76: note: in expansion of macro 'NULL'
>      391 |                              &v3d_bin_sched_ops, 
> DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                                                                    
>         ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
>    drivers/gpu/drm/v3d/v3d_sched.c:399:53: warning: passing argument 3 of 
> 'drm_sched_init' makes pointer from integer without a cast [-Wint-conversion]
>      399 |                              &v3d_render_sched_ops, 
> DRM_SCHED_PRIORITY_COUNT,
>          |                                                     
> ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                                                     |
>          |                                                     int
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/v3d/v3d_sched.c:400:30: note: in expansion of macro 'NULL'
>      400 |                              NULL, hw_jobs_limit, job_hang_limit,
>          |                              ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
>    drivers/gpu/drm/v3d/v3d_sched.c:407:50: warning: passing argument 3 of 
> 'drm_sched_init' makes pointer from integer without a cast [-Wint-conversion]
>      407 |                              &v3d_tfu_sched_ops, 
> DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                                                  
> ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                                                  |
>          |                                                  int
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/v3d/v3d_sched.c:407:76: note: in expansion of macro 'NULL'
>      407 |                              &v3d_tfu_sched_ops, 
> DRM_SCHED_PRIORITY_COUNT, NULL,
>          |                                                                    
>         ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
>    drivers/gpu/drm/v3d/v3d_sched.c:417:38: warning: passing argument 3 of 
> 'drm_sched_init' makes pointer from integer without a cast [-Wint-conversion]
>      417 |                                      DRM_SCHED_PRIORITY_COUNT, 
> NULL,
>          |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                                      |
>          |                                      int
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/v3d/v3d_sched.c:417:64: note: in expansion of macro 'NULL'
>      417 |                                      DRM_SCHED_PRIORITY_COUNT, 
> NULL,
>          |                                                                ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
>    drivers/gpu/drm/v3d/v3d_sched.c:426:38: warning: passing argument 3 of 
> 'drm_sched_init' makes pointer from integer without a cast [-Wint-conversion]
>      426 |                                      DRM_SCHED_PRIORITY_COUNT, 
> NULL,
>          |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
>          |                                      |
>          |                                      int
>    include/drm/gpu_scheduler.h:530:45: note: expected 'struct 
> workqueue_struct *' but argument is of type 'int'
>      530 |                    struct workqueue_struct *submit_wq,
>          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>>> include/linux/stddef.h:8:14: warning: passing argument 4 of 
>>> 'drm_sched_init' makes integer from pointer without a cast 
>>> [-Wint-conversion]
>        8 | #define NULL ((void *)0)
>          |              ^~~~~~~~~~~
>          |              |
>          |              void *
>    drivers/gpu/drm/v3d/v3d_sched.c:426:64: note: in expansion of macro 'NULL'
>      426 |                                      DRM_SCHED_PRIORITY_COUNT, 
> NULL,
>          |                                                                ^~~~
>    include/drm/gpu_scheduler.h:531:24: note: expected 'u32' {aka 'unsigned 
> int'} but argument is of type 'void *'
>      531 |                    u32 num_rqs, uint32_t hw_submission, unsigned 
> hang_limit,
>          |                    ~~~~^~~~~~~
> 
> 
> vim +/drm_sched_init +138 drivers/gpu/drm/etnaviv/etnaviv_sched.c
> 
>    132        
>    133        int etnaviv_sched_init(struct etnaviv_gpu *gpu)
>    134        {
>    135                int ret;
>    136        
>    137                ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
>  > 138                                     DRM_SCHED_PRIORITY_COUNT, NULL,
>    139                                     etnaviv_hw_jobs_limit, 
> etnaviv_job_hang_limit,
>    140                                     msecs_to_jiffies(500), NULL, NULL,
>    141                                     dev_name(gpu->dev), gpu->dev);
>    142                if (ret)
>    143                        return ret;
>    144        
>    145                return 0;
>    146        }
>    147        
> 

-- 
Regards,
Luben

Reply via email to