All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-21  9:57 Jiawei Gu
  2022-02-21 10:17 ` Christian König
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Jiawei Gu @ 2022-02-21  9:57 UTC (permalink / raw)
  To: dri-devel, amd-gfx, Christian.Koenig, Andrey.Grodzovsky,
	Monk.Liu, Emily.Deng, Horace.Chen
  Cc: Jiawei Gu

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
scenario.

v2: amend all calls of drm_sched_init()
v3: fill dev pointer for all drm_sched_init() calls

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
 drivers/gpu/drm/lima/lima_sched.c         |  2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
 drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
 drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
 include/drm/gpu_scheduler.h               |  3 ++-
 7 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 45977a72b5dd..cd2d594d4ffc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -502,7 +502,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
 
 	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
 			   num_hw_submission, amdgpu_job_hang_limit,
-			   timeout, NULL, sched_score, ring->name);
+			   timeout, NULL, sched_score, ring->name, adev->dev);
 	if (r) {
 		DRM_ERROR("Failed to create scheduler on ring %s.\n",
 			  ring->name);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 58f593b278c1..35e5ef7dbdcc 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -195,7 +195,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
 	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
 			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
 			     msecs_to_jiffies(500), NULL, NULL,
-			     dev_name(gpu->dev));
+			     dev_name(gpu->dev), gpu->dev);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index 5612d73f238f..8d517c8880e3 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -490,7 +490,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
 	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
 			      lima_job_hang_limit,
 			      msecs_to_jiffies(timeout), NULL,
-			      NULL, name);
+			      NULL, name, pipe->ldev->dev);
 }
 
 void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 908d79520853..a6925dbb6224 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -812,7 +812,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
 				     nentries, 0,
 				     msecs_to_jiffies(JOB_TIMEOUT_MS),
 				     pfdev->reset.wq,
-				     NULL, "pan_js");
+				     NULL, "pan_js", pfdev->dev);
 		if (ret) {
 			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
 			goto err_sched;
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index f91fb31ab7a7..b81fceb0b8a2 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -491,7 +491,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -957,7 +957,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -991,7 +991,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit,
 		   long timeout, struct workqueue_struct *timeout_wq,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -1001,6 +1001,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout_wq = timeout_wq ? : system_wq;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -1018,7 +1019,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
index e0cb7d0697a7..080710fd8eb7 100644
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -391,7 +391,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_bin_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_bin");
+			     NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
 		return ret;
@@ -401,7 +401,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_render_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_render");
+			     NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
 			ret);
@@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_tfu_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_tfu");
+			     NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
 			ret);
@@ -426,7 +426,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_csd_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms), NULL,
-				     NULL, "v3d_csd");
+				     NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
 				ret);
@@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_cache_clean_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms), NULL,
-				     NULL, "v3d_cache_clean");
+				     NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
 				ret);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index bbc22fad8d80..944f83ef9f2e 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -457,13 +457,14 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit,
 		   long timeout, struct workqueue_struct *timeout_wq,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);
 int drm_sched_job_init(struct drm_sched_job *job,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21  9:57 [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler Jiawei Gu
@ 2022-02-21 10:17 ` Christian König
  2022-02-21 15:51 ` kernel test robot
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-21 10:17 UTC (permalink / raw)
  To: Jiawei Gu, dri-devel, amd-gfx, Andrey.Grodzovsky, Monk.Liu,
	Emily.Deng, Horace.Chen

Am 21.02.22 um 10:57 schrieb Jiawei Gu:
> Add device pointer so scheduler's printing can use
> DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
> scenario.
>
> v2: amend all calls of drm_sched_init()
> v3: fill dev pointer for all drm_sched_init() calls
>
> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>

Reviewed-by: Christian König <christian.koenig@amd.com>

When Andrey is fine with that as well I think the best approach is to 
push this upstream through drm-misc-next since it touches multiple drivers.

We can merge it into the DKMS branch as well if necessary.

Regards,
Christian

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
>   drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
>   drivers/gpu/drm/lima/lima_sched.c         |  2 +-
>   drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
>   drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
>   drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
>   include/drm/gpu_scheduler.h               |  3 ++-
>   7 files changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> index 45977a72b5dd..cd2d594d4ffc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> @@ -502,7 +502,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
>   
>   	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
>   			   num_hw_submission, amdgpu_job_hang_limit,
> -			   timeout, NULL, sched_score, ring->name);
> +			   timeout, NULL, sched_score, ring->name, adev->dev);
>   	if (r) {
>   		DRM_ERROR("Failed to create scheduler on ring %s.\n",
>   			  ring->name);
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> index 58f593b278c1..35e5ef7dbdcc 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> @@ -195,7 +195,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
>   	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
>   			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
>   			     msecs_to_jiffies(500), NULL, NULL,
> -			     dev_name(gpu->dev));
> +			     dev_name(gpu->dev), gpu->dev);
>   	if (ret)
>   		return ret;
>   
> diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
> index 5612d73f238f..8d517c8880e3 100644
> --- a/drivers/gpu/drm/lima/lima_sched.c
> +++ b/drivers/gpu/drm/lima/lima_sched.c
> @@ -490,7 +490,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
>   	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
>   			      lima_job_hang_limit,
>   			      msecs_to_jiffies(timeout), NULL,
> -			      NULL, name);
> +			      NULL, name, pipe->ldev->dev);
>   }
>   
>   void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
> diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
> index 908d79520853..a6925dbb6224 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_job.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c
> @@ -812,7 +812,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
>   				     nentries, 0,
>   				     msecs_to_jiffies(JOB_TIMEOUT_MS),
>   				     pfdev->reset.wq,
> -				     NULL, "pan_js");
> +				     NULL, "pan_js", pfdev->dev);
>   		if (ret) {
>   			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
>   			goto err_sched;
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index f91fb31ab7a7..b81fceb0b8a2 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -491,7 +491,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(s_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   		} else
>   			drm_sched_job_done(s_job);
> @@ -957,7 +957,7 @@ static int drm_sched_main(void *param)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(sched_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   			dma_fence_put(fence);
>   		} else {
> @@ -991,7 +991,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   unsigned hw_submission, unsigned hang_limit,
>   		   long timeout, struct workqueue_struct *timeout_wq,
> -		   atomic_t *score, const char *name)
> +		   atomic_t *score, const char *name, struct device *dev)
>   {
>   	int i, ret;
>   	sched->ops = ops;
> @@ -1001,6 +1001,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	sched->timeout_wq = timeout_wq ? : system_wq;
>   	sched->hang_limit = hang_limit;
>   	sched->score = score ? score : &sched->_score;
> +	sched->dev = dev;
>   	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
>   		drm_sched_rq_init(sched, &sched->sched_rq[i]);
>   
> @@ -1018,7 +1019,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	if (IS_ERR(sched->thread)) {
>   		ret = PTR_ERR(sched->thread);
>   		sched->thread = NULL;
> -		DRM_ERROR("Failed to create scheduler for %s.\n", name);
> +		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
>   		return ret;
>   	}
>   
> diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
> index e0cb7d0697a7..080710fd8eb7 100644
> --- a/drivers/gpu/drm/v3d/v3d_sched.c
> +++ b/drivers/gpu/drm/v3d/v3d_sched.c
> @@ -391,7 +391,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_bin_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms), NULL,
> -			     NULL, "v3d_bin");
> +			     NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
>   		return ret;
> @@ -401,7 +401,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_render_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms), NULL,
> -			     NULL, "v3d_render");
> +			     NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
>   			ret);
> @@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_tfu_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms), NULL,
> -			     NULL, "v3d_tfu");
> +			     NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
>   			ret);
> @@ -426,7 +426,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_csd_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms), NULL,
> -				     NULL, "v3d_csd");
> +				     NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
>   				ret);
> @@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_cache_clean_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms), NULL,
> -				     NULL, "v3d_cache_clean");
> +				     NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
>   				ret);
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index bbc22fad8d80..944f83ef9f2e 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -457,13 +457,14 @@ struct drm_gpu_scheduler {
>   	atomic_t                        _score;
>   	bool				ready;
>   	bool				free_guilty;
> +	struct device			*dev;
>   };
>   
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   uint32_t hw_submission, unsigned hang_limit,
>   		   long timeout, struct workqueue_struct *timeout_wq,
> -		   atomic_t *score, const char *name);
> +		   atomic_t *score, const char *name, struct device *dev);
>   
>   void drm_sched_fini(struct drm_gpu_scheduler *sched);
>   int drm_sched_job_init(struct drm_sched_job *job,


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21  9:57 [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler Jiawei Gu
  2022-02-21 10:17 ` Christian König
@ 2022-02-21 15:51 ` kernel test robot
  2022-02-23  7:11     ` Christian König
  2022-02-21 16:32 ` kernel test robot
  2022-02-21 17:12 ` kernel test robot
  3 siblings, 1 reply; 23+ messages in thread
From: kernel test robot @ 2022-02-21 15:51 UTC (permalink / raw)
  To: Jiawei Gu, dri-devel, amd-gfx, Christian.Koenig,
	Andrey.Grodzovsky, Monk.Liu, Emily.Deng, Horace.Chen
  Cc: Jiawei Gu, kbuild-all

Hi Jiawei,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217]
[cannot apply to drm-tip/drm-tip]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
base:   git://anongit.freedesktop.org/drm/drm drm-next
config: ia64-allmodconfig (https://download.01.org/0day-ci/archive/20220221/202202212330.nxcvFWEe-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/9fdafca855faca0a3b8f213f024985c4112fa0bb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
        git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/ drivers/gpu/drm/v3d/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
      90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
         |               ^~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
                    from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
   include/drm/gpu_scheduler.h:463:5: note: declared here
     463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
         |     ^~~~~~~~~~~~~~
--
   In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
   drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of function 'to_platform_device' [-Werror=implicit-function-declaration]
     158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
         |                          ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
     394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
         |                                                 ^~~~~~~~~~~
>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument of '->' (have 'int')
     394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
         |                                                                 ^~
   drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
     404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
         |                                                                    ^~
   drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
     416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
         |                                                                 ^~
   drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
     429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
         |                                                                         ^~
   drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
     441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
         |                                                                                 ^~
   cc1: some warnings being treated as errors


vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c

1d8a5ca436ee4a Rob Clark     2021-07-27   47  
f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
7198e6b03155f6 Rob Clark     2013-07-19   50  {
7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
7198e6b03155f6 Rob Clark     2013-07-19   55  
f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
7198e6b03155f6 Rob Clark     2013-07-19   58  
7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
7198e6b03155f6 Rob Clark     2013-07-19   63  	}
7198e6b03155f6 Rob Clark     2013-07-19   64  
7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
84c6127580c1ce Jordan Crouse 2018-11-07   67  
f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
8223286d62e296 Jordan Crouse 2017-07-27   71  
69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
69a834c28fb514 Rob Clark     2016-05-24   76  	}
0815d7749a6852 Jordan Crouse 2018-11-07   77  
0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
0815d7749a6852 Jordan Crouse 2018-11-07   79  
f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
7198e6b03155f6 Rob Clark     2013-07-19   83  
f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
f97decac5f4c2d Jordan Crouse 2017-10-20   86  
1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
1d8a5ca436ee4a Rob Clark     2021-07-27   89  
1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
1d8a5ca436ee4a Rob Clark     2021-07-27   96  
f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
f97decac5f4c2d Jordan Crouse 2017-10-20  100  
f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
f97decac5f4c2d Jordan Crouse 2017-10-20  102  
da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
7198e6b03155f6 Rob Clark     2013-07-19  104  
7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
7198e6b03155f6 Rob Clark     2013-07-19  106  
7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
7198e6b03155f6 Rob Clark     2013-07-19  110  }
7198e6b03155f6 Rob Clark     2013-07-19  111  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21  9:57 [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler Jiawei Gu
  2022-02-21 10:17 ` Christian König
  2022-02-21 15:51 ` kernel test robot
@ 2022-02-21 16:32 ` kernel test robot
  2022-02-21 17:12 ` kernel test robot
  3 siblings, 0 replies; 23+ messages in thread
From: kernel test robot @ 2022-02-21 16:32 UTC (permalink / raw)
  To: Jiawei Gu, dri-devel, amd-gfx, Christian.Koenig,
	Andrey.Grodzovsky, Monk.Liu, Emily.Deng, Horace.Chen
  Cc: llvm, kbuild-all, Jiawei Gu

Hi Jiawei,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217]
[cannot apply to drm-tip/drm-tip airlied/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
base:   git://anongit.freedesktop.org/drm/drm drm-next
config: hexagon-randconfig-r004-20220221 (https://download.01.org/0day-ci/archive/20220222/202202220034.6C0UzU5E-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/9fdafca855faca0a3b8f213f024985c4112fa0bb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
        git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/gpu/drm/v3d/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/v3d/v3d_sched.c:394:28: error: implicit declaration of function 'to_platform_device' [-Werror,-Wimplicit-function-declaration]
                                NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
                                                   ^
   drivers/gpu/drm/v3d/v3d_drv.h:158:26: note: expanded from macro 'v3d_to_pdev'
   #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
                            ^
>> drivers/gpu/drm/v3d/v3d_sched.c:394:46: error: member reference type 'int' is not a pointer
                                NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
                                                   ~~~~~~~~~~~~~~~~  ^
   drivers/gpu/drm/v3d/v3d_sched.c:404:49: error: member reference type 'int' is not a pointer
                                NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
                                                      ~~~~~~~~~~~~~~~~  ^
   drivers/gpu/drm/v3d/v3d_sched.c:416:46: error: member reference type 'int' is not a pointer
                                NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
                                                   ~~~~~~~~~~~~~~~~  ^
   drivers/gpu/drm/v3d/v3d_sched.c:429:47: error: member reference type 'int' is not a pointer
                                        NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
                                                           ~~~~~~~~~~~~~~~~  ^
   drivers/gpu/drm/v3d/v3d_sched.c:441:55: error: member reference type 'int' is not a pointer
                                        NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
                                                                   ~~~~~~~~~~~~~~~~  ^
   6 errors generated.


vim +/to_platform_device +394 drivers/gpu/drm/v3d/v3d_sched.c

   381	
   382	int
   383	v3d_sched_init(struct v3d_dev *v3d)
   384	{
   385		int hw_jobs_limit = 1;
   386		int job_hang_limit = 0;
   387		int hang_limit_ms = 500;
   388		int ret;
   389	
   390		ret = drm_sched_init(&v3d->queue[V3D_BIN].sched,
   391				     &v3d_bin_sched_ops,
   392				     hw_jobs_limit, job_hang_limit,
   393				     msecs_to_jiffies(hang_limit_ms), NULL,
 > 394				     NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
   395		if (ret) {
   396			dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
   397			return ret;
   398		}
   399	
   400		ret = drm_sched_init(&v3d->queue[V3D_RENDER].sched,
   401				     &v3d_render_sched_ops,
   402				     hw_jobs_limit, job_hang_limit,
   403				     msecs_to_jiffies(hang_limit_ms), NULL,
   404				     NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
   405		if (ret) {
   406			dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
   407				ret);
   408			v3d_sched_fini(v3d);
   409			return ret;
   410		}
   411	
   412		ret = drm_sched_init(&v3d->queue[V3D_TFU].sched,
   413				     &v3d_tfu_sched_ops,
   414				     hw_jobs_limit, job_hang_limit,
   415				     msecs_to_jiffies(hang_limit_ms), NULL,
   416				     NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
   417		if (ret) {
   418			dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
   419				ret);
   420			v3d_sched_fini(v3d);
   421			return ret;
   422		}
   423	
   424		if (v3d_has_csd(v3d)) {
   425			ret = drm_sched_init(&v3d->queue[V3D_CSD].sched,
   426					     &v3d_csd_sched_ops,
   427					     hw_jobs_limit, job_hang_limit,
   428					     msecs_to_jiffies(hang_limit_ms), NULL,
   429					     NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
   430			if (ret) {
   431				dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
   432					ret);
   433				v3d_sched_fini(v3d);
   434				return ret;
   435			}
   436	
   437			ret = drm_sched_init(&v3d->queue[V3D_CACHE_CLEAN].sched,
   438					     &v3d_cache_clean_sched_ops,
   439					     hw_jobs_limit, job_hang_limit,
   440					     msecs_to_jiffies(hang_limit_ms), NULL,
   441					     NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
   442			if (ret) {
   443				dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
   444					ret);
   445				v3d_sched_fini(v3d);
   446				return ret;
   447			}
   448		}
   449	
   450		return 0;
   451	}
   452	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21  9:57 [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler Jiawei Gu
                   ` (2 preceding siblings ...)
  2022-02-21 16:32 ` kernel test robot
@ 2022-02-21 17:12 ` kernel test robot
  3 siblings, 0 replies; 23+ messages in thread
From: kernel test robot @ 2022-02-21 17:12 UTC (permalink / raw)
  To: Jiawei Gu, dri-devel, amd-gfx, Christian.Koenig,
	Andrey.Grodzovsky, Monk.Liu, Emily.Deng, Horace.Chen
  Cc: llvm, kbuild-all, Jiawei Gu

Hi Jiawei,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217]
[cannot apply to drm-tip/drm-tip]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
base:   git://anongit.freedesktop.org/drm/drm drm-next
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20220222/202202220108.kzXHnO9I-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/9fdafca855faca0a3b8f213f024985c4112fa0bb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
        git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/gpu/drm/msm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/msm/msm_ringbuffer.c:92:41: error: too few arguments to function call, expected 9, have 8
                           NULL, NULL, to_msm_bo(ring->bo)->name);
                                                                ^
   include/drm/gpu_scheduler.h:463:5: note: 'drm_sched_init' declared here
   int drm_sched_init(struct drm_gpu_scheduler *sched,
       ^
   1 error generated.


vim +92 drivers/gpu/drm/msm/msm_ringbuffer.c

1d8a5ca436ee4a Rob Clark     2021-07-27   47  
f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
7198e6b03155f6 Rob Clark     2013-07-19   50  {
7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
7198e6b03155f6 Rob Clark     2013-07-19   55  
f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
7198e6b03155f6 Rob Clark     2013-07-19   58  
7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
7198e6b03155f6 Rob Clark     2013-07-19   63  	}
7198e6b03155f6 Rob Clark     2013-07-19   64  
7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
84c6127580c1ce Jordan Crouse 2018-11-07   67  
f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
8223286d62e296 Jordan Crouse 2017-07-27   71  
69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
69a834c28fb514 Rob Clark     2016-05-24   76  	}
0815d7749a6852 Jordan Crouse 2018-11-07   77  
0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
0815d7749a6852 Jordan Crouse 2018-11-07   79  
f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
7198e6b03155f6 Rob Clark     2013-07-19   83  
f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
f97decac5f4c2d Jordan Crouse 2017-10-20   86  
1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
1d8a5ca436ee4a Rob Clark     2021-07-27   89  
1d8a5ca436ee4a Rob Clark     2021-07-27   90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
f1b7996551a40a Dave Airlie   2021-07-30  @92  			NULL, NULL, to_msm_bo(ring->bo)->name);
1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
1d8a5ca436ee4a Rob Clark     2021-07-27   96  
f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
f97decac5f4c2d Jordan Crouse 2017-10-20  100  
f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
f97decac5f4c2d Jordan Crouse 2017-10-20  102  
da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
7198e6b03155f6 Rob Clark     2013-07-19  104  
7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
7198e6b03155f6 Rob Clark     2013-07-19  106  
7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
7198e6b03155f6 Rob Clark     2013-07-19  110  }
7198e6b03155f6 Rob Clark     2013-07-19  111  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21 15:51 ` kernel test robot
@ 2022-02-23  7:11     ` Christian König
  0 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-23  7:11 UTC (permalink / raw)
  To: kernel test robot, Jiawei Gu, dri-devel, amd-gfx,
	Andrey.Grodzovsky, Monk.Liu, Emily.Deng, Horace.Chen
  Cc: kbuild-all

Hi Jiawei,


can you take a look at this? The kernel build robots screaming that this 
breaks the V3D build. Probably just a typo or missing include.

I would rather like to push this sooner than later.

Thanks,
Christian.

Am 21.02.22 um 16:51 schrieb kernel test robot:
> Hi Jiawei,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm/drm-next]
> [also build test ERROR on drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217]
> [cannot apply to drm-tip/drm-tip]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;reserved=0]
>
> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> base:   git://anongit.freedesktop.org/drm/drm drm-next
> config: ia64-allmodconfig (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdownload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lkp%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVbOkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> compiler: ia64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>          wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>          git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>          git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>          git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>          # save the config file to linux build tree
>          mkdir build_dir
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/ drivers/gpu/drm/v3d/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>     drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>        90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>           |               ^~~~~~~~~~~~~~
>     In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>                      from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>     include/drm/gpu_scheduler.h:463:5: note: declared here
>       463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>           |     ^~~~~~~~~~~~~~
> --
>     In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>     drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of function 'to_platform_device' [-Werror=implicit-function-declaration]
>       158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>           |                          ^~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                 ^~~~~~~~~~~
>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument of '->' (have 'int')
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>       404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>           |                                                                    ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>       416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>       429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>           |                                                                         ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>       441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>           |                                                                                 ^~
>     cc1: some warnings being treated as errors
>
>
> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>
> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
> 7198e6b03155f6 Rob Clark     2013-07-19   55
> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> 7198e6b03155f6 Rob Clark     2013-07-19   58
> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
> 7198e6b03155f6 Rob Clark     2013-07-19   64
> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
> 8223286d62e296 Jordan Crouse 2017-07-27   71
> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   83
> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> 7198e6b03155f6 Rob Clark     2013-07-19  104
> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
> 7198e6b03155f6 Rob Clark     2013-07-19  106
> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> 7198e6b03155f6 Rob Clark     2013-07-19  111
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBkr%2BsMQ%3D&amp;reserved=0


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-23  7:11     ` Christian König
  0 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-23  7:11 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 12322 bytes --]

Hi Jiawei,


can you take a look at this? The kernel build robots screaming that this 
breaks the V3D build. Probably just a typo or missing include.

I would rather like to push this sooner than later.

Thanks,
Christian.

Am 21.02.22 um 16:51 schrieb kernel test robot:
> Hi Jiawei,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm/drm-next]
> [also build test ERROR on drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217]
> [cannot apply to drm-tip/drm-tip]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;reserved=0]
>
> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> base:   git://anongit.freedesktop.org/drm/drm drm-next
> config: ia64-allmodconfig (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdownload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lkp%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVbOkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> compiler: ia64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>          wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>          git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>          git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>          git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>          # save the config file to linux build tree
>          mkdir build_dir
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/ drivers/gpu/drm/v3d/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>     drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>        90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>           |               ^~~~~~~~~~~~~~
>     In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>                      from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>     include/drm/gpu_scheduler.h:463:5: note: declared here
>       463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>           |     ^~~~~~~~~~~~~~
> --
>     In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>     drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of function 'to_platform_device' [-Werror=implicit-function-declaration]
>       158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>           |                          ^~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                 ^~~~~~~~~~~
>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument of '->' (have 'int')
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>       404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>           |                                                                    ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>       416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>       429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>           |                                                                         ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>       441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>           |                                                                                 ^~
>     cc1: some warnings being treated as errors
>
>
> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>
> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
> 7198e6b03155f6 Rob Clark     2013-07-19   55
> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> 7198e6b03155f6 Rob Clark     2013-07-19   58
> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
> 7198e6b03155f6 Rob Clark     2013-07-19   64
> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
> 8223286d62e296 Jordan Crouse 2017-07-27   71
> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   83
> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> 7198e6b03155f6 Rob Clark     2013-07-19  104
> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
> 7198e6b03155f6 Rob Clark     2013-07-19  106
> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> 7198e6b03155f6 Rob Clark     2013-07-19  111
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBkr%2BsMQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 23+ messages in thread

* RE: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-23  7:11     ` Christian König
  (?)
@ 2022-02-23  7:15     ` Gu, JiaWei (Will)
  2022-02-23  7:41         ` Christian König
  -1 siblings, 1 reply; 23+ messages in thread
From: Gu, JiaWei (Will) @ 2022-02-23  7:15 UTC (permalink / raw)
  To: Koenig, Christian, kernel test robot, dri-devel, amd-gfx,
	Grodzovsky, Andrey, Liu, Monk, Deng, Emily, Chen, Horace
  Cc: kbuild-all

[AMD Official Use Only]

Hi Christian,

I noticed that and it has been fixed with the latest patch.
And I pushed it to amd-staging-drm-next already.

Best regards,
Jiawei

-----Original Message-----
From: Koenig, Christian <Christian.Koenig@amd.com> 
Sent: Wednesday, February 23, 2022 3:12 PM
To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
Cc: kbuild-all@lists.01.org
Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler

Hi Jiawei,


can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.

I would rather like to push this sooner than later.

Thanks,
Christian.

Am 21.02.22 um 16:51 schrieb kernel test robot:
> Hi Jiawei,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm/drm-next] [also build test ERROR on 
> drm-intel/for-linux-next drm-exynos/exynos-drm-next 
> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to 
> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in 
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
> served=0]
>
> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> base:   git://anongit.freedesktop.org/drm/drm drm-next
> config: ia64-allmodconfig 
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> compiler: ia64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>          wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>          git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>          git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>          git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>          # save the config file to linux build tree
>          mkdir build_dir
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 
> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/ 
> drivers/gpu/drm/v3d/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>     drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>        90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>           |               ^~~~~~~~~~~~~~
>     In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>                      from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>     include/drm/gpu_scheduler.h:463:5: note: declared here
>       463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>           |     ^~~~~~~~~~~~~~
> --
>     In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>     drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of 
>>> function 'to_platform_device' 
>>> [-Werror=implicit-function-declaration]
>       158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>           |                          ^~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                 ^~~~~~~~~~~
>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument 
>>> of '->' (have 'int')
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>       404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>           |                                                                    ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>       416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>       429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>           |                                                                         ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>       441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>           |                                                                                 ^~
>     cc1: some warnings being treated as errors
>
>
> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>
> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
> 7198e6b03155f6 Rob Clark     2013-07-19   55
> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> 7198e6b03155f6 Rob Clark     2013-07-19   58
> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
> 7198e6b03155f6 Rob Clark     2013-07-19   64
> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
> 8223286d62e296 Jordan Crouse 2017-07-27   71
> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   83
> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> 7198e6b03155f6 Rob Clark     2013-07-19  104
> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
> 7198e6b03155f6 Rob Clark     2013-07-19  106
> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> 7198e6b03155f6 Rob Clark     2013-07-19  111
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> r%2BsMQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-23  7:11     ` Christian König
  (?)
  (?)
@ 2022-02-23  7:15     ` Gu, JiaWei
  -1 siblings, 0 replies; 23+ messages in thread
From: Gu, JiaWei @ 2022-02-23  7:15 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 13133 bytes --]

[AMD Official Use Only]

Hi Christian,

I noticed that and it has been fixed with the latest patch.
And I pushed it to amd-staging-drm-next already.

Best regards,
Jiawei

-----Original Message-----
From: Koenig, Christian <Christian.Koenig@amd.com> 
Sent: Wednesday, February 23, 2022 3:12 PM
To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel(a)lists.freedesktop.org; amd-gfx(a)lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
Cc: kbuild-all(a)lists.01.org
Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler

Hi Jiawei,


can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.

I would rather like to push this sooner than later.

Thanks,
Christian.

Am 21.02.22 um 16:51 schrieb kernel test robot:
> Hi Jiawei,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm/drm-next] [also build test ERROR on 
> drm-intel/for-linux-next drm-exynos/exynos-drm-next 
> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to 
> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in 
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
> served=0]
>
> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> base:   git://anongit.freedesktop.org/drm/drm drm-next
> config: ia64-allmodconfig 
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> compiler: ia64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>          wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>          git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>          git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>          git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>          # save the config file to linux build tree
>          mkdir build_dir
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 
> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/ 
> drivers/gpu/drm/v3d/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>     drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>        90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>           |               ^~~~~~~~~~~~~~
>     In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>                      from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>     include/drm/gpu_scheduler.h:463:5: note: declared here
>       463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>           |     ^~~~~~~~~~~~~~
> --
>     In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>     drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of 
>>> function 'to_platform_device' 
>>> [-Werror=implicit-function-declaration]
>       158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>           |                          ^~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                 ^~~~~~~~~~~
>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument 
>>> of '->' (have 'int')
>       394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>       404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>           |                                                                    ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>       416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>           |                                                                 ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>       429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>           |                                                                         ^~
>     drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>       441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>           |                                                                                 ^~
>     cc1: some warnings being treated as errors
>
>
> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>
> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
> 7198e6b03155f6 Rob Clark     2013-07-19   55
> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> 7198e6b03155f6 Rob Clark     2013-07-19   58
> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
> 7198e6b03155f6 Rob Clark     2013-07-19   64
> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
> 8223286d62e296 Jordan Crouse 2017-07-27   71
> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
> 7198e6b03155f6 Rob Clark     2013-07-19   83
> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> 7198e6b03155f6 Rob Clark     2013-07-19  104
> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
> 7198e6b03155f6 Rob Clark     2013-07-19  106
> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> 7198e6b03155f6 Rob Clark     2013-07-19  111
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> r%2BsMQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-23  7:15     ` Gu, JiaWei (Will)
@ 2022-02-23  7:41         ` Christian König
  0 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-23  7:41 UTC (permalink / raw)
  To: Gu, JiaWei (Will),
	dri-devel, amd-gfx, Grodzovsky, Andrey, Liu, Monk, Deng, Emily,
	Chen, Horace, Alex Deucher
  Cc: kbuild-all

Well that's bad. This should not be pushed to amd-staging-drm-next at all.

This patch is touching multiple drivers and therefore needs to go 
upstream through drm-misc-next.

Alex can you drop that one before you send out a pull request? I'm going 
to cherry-pick it over to drm-misc-next.

Thanks,
Christian.

Am 23.02.22 um 08:15 schrieb Gu, JiaWei (Will):
> [AMD Official Use Only]
>
> Hi Christian,
>
> I noticed that and it has been fixed with the latest patch.
> And I pushed it to amd-staging-drm-next already.
>
> Best regards,
> Jiawei
>
> -----Original Message-----
> From: Koenig, Christian <Christian.Koenig@amd.com>
> Sent: Wednesday, February 23, 2022 3:12 PM
> To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> Cc: kbuild-all@lists.01.org
> Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
>
> Hi Jiawei,
>
>
> can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.
>
> I would rather like to push this sooner than later.
>
> Thanks,
> Christian.
>
> Am 21.02.22 um 16:51 schrieb kernel test robot:
>> Hi Jiawei,
>>
>> Thank you for the patch! Yet something to improve:
>>
>> [auto build test ERROR on drm/drm-next] [also build test ERROR on
>> drm-intel/for-linux-next drm-exynos/exynos-drm-next
>> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to
>> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
>> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
>> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
>> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
>> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
>> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
>> served=0]
>>
>> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
>> base:   git://anongit.freedesktop.org/drm/drm drm-next
>> config: ia64-allmodconfig
>> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
>> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
>> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
>> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
>> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
>> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
>> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
>> compiler: ia64-linux-gcc (GCC) 11.2.0
>> reproduce (this is a W=1 build):
>>           wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>>           chmod +x ~/bin/make.cross
>>           # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>>           git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>>           git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>>           git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>>           # save the config file to linux build tree
>>           mkdir build_dir
>>           COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0
>> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/
>> drivers/gpu/drm/v3d/
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All errors (new ones prefixed by >>):
>>
>>      drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>>         90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>>            |               ^~~~~~~~~~~~~~
>>      In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>>                       from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>>      include/drm/gpu_scheduler.h:463:5: note: declared here
>>        463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>>            |     ^~~~~~~~~~~~~~
>> --
>>      In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>>      drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of
>>>> function 'to_platform_device'
>>>> [-Werror=implicit-function-declaration]
>>        158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>>            |                          ^~~~~~~~~~~~~~~~~~
>>      drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>>            |                                                 ^~~~~~~~~~~
>>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument
>>>> of '->' (have 'int')
>>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                 ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>>        404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                    ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>>        416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                 ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>>        429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                         ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>>        441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                                 ^~
>>      cc1: some warnings being treated as errors
>>
>>
>> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>>
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
>> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
>> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
>> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
>> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
>> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
>> 7198e6b03155f6 Rob Clark     2013-07-19   55
>> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
>> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
>> 7198e6b03155f6 Rob Clark     2013-07-19   58
>> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
>> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
>> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
>> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
>> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
>> 7198e6b03155f6 Rob Clark     2013-07-19   64
>> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
>> 84c6127580c1ce Jordan Crouse 2018-11-07   67
>> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
>> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
>> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
>> 8223286d62e296 Jordan Crouse 2017-07-27   71
>> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
>> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
>> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
>> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
>> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
>> 0815d7749a6852 Jordan Crouse 2018-11-07   77
>> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
>> 0815d7749a6852 Jordan Crouse 2018-11-07   79
>> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
>> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
>> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
>> 7198e6b03155f6 Rob Clark     2013-07-19   83
>> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   86
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
>> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
>> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
>> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
>> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
>> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
>> f97decac5f4c2d Jordan Crouse 2017-10-20  100
>> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
>> f97decac5f4c2d Jordan Crouse 2017-10-20  102
>> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
>> 7198e6b03155f6 Rob Clark     2013-07-19  104
>> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
>> 7198e6b03155f6 Rob Clark     2013-07-19  106
>> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
>> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
>> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
>> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
>> 7198e6b03155f6 Rob Clark     2013-07-19  111
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
>> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
>> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
>> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
>> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
>> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
>> r%2BsMQ%3D&amp;reserved=0


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-23  7:41         ` Christian König
  0 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-23  7:41 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 13741 bytes --]

Well that's bad. This should not be pushed to amd-staging-drm-next at all.

This patch is touching multiple drivers and therefore needs to go 
upstream through drm-misc-next.

Alex can you drop that one before you send out a pull request? I'm going 
to cherry-pick it over to drm-misc-next.

Thanks,
Christian.

Am 23.02.22 um 08:15 schrieb Gu, JiaWei (Will):
> [AMD Official Use Only]
>
> Hi Christian,
>
> I noticed that and it has been fixed with the latest patch.
> And I pushed it to amd-staging-drm-next already.
>
> Best regards,
> Jiawei
>
> -----Original Message-----
> From: Koenig, Christian <Christian.Koenig@amd.com>
> Sent: Wednesday, February 23, 2022 3:12 PM
> To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel(a)lists.freedesktop.org; amd-gfx(a)lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> Cc: kbuild-all(a)lists.01.org
> Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
>
> Hi Jiawei,
>
>
> can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.
>
> I would rather like to push this sooner than later.
>
> Thanks,
> Christian.
>
> Am 21.02.22 um 16:51 schrieb kernel test robot:
>> Hi Jiawei,
>>
>> Thank you for the patch! Yet something to improve:
>>
>> [auto build test ERROR on drm/drm-next] [also build test ERROR on
>> drm-intel/for-linux-next drm-exynos/exynos-drm-next
>> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to
>> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
>> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
>> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
>> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
>> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
>> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
>> served=0]
>>
>> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
>> base:   git://anongit.freedesktop.org/drm/drm drm-next
>> config: ia64-allmodconfig
>> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
>> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
>> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
>> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
>> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
>> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
>> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
>> compiler: ia64-linux-gcc (GCC) 11.2.0
>> reproduce (this is a W=1 build):
>>           wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
>>           chmod +x ~/bin/make.cross
>>           # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
>>           git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
>>           git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
>>           git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
>>           # save the config file to linux build tree
>>           mkdir build_dir
>>           COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0
>> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/
>> drivers/gpu/drm/v3d/
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All errors (new ones prefixed by >>):
>>
>>      drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
>>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
>>         90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>>            |               ^~~~~~~~~~~~~~
>>      In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
>>                       from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
>>      include/drm/gpu_scheduler.h:463:5: note: declared here
>>        463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
>>            |     ^~~~~~~~~~~~~~
>> --
>>      In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
>>      drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
>>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of
>>>> function 'to_platform_device'
>>>> [-Werror=implicit-function-declaration]
>>        158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
>>            |                          ^~~~~~~~~~~~~~~~~~
>>      drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
>>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>>            |                                                 ^~~~~~~~~~~
>>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument
>>>> of '->' (have 'int')
>>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                 ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
>>        404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                    ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
>>        416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                 ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
>>        429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                         ^~
>>      drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
>>        441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
>>            |                                                                                 ^~
>>      cc1: some warnings being treated as errors
>>
>>
>> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
>>
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
>> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
>> f97decac5f4c2d Jordan Crouse 2017-10-20   49  		void *memptrs, uint64_t memptrs_iova)
>> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
>> 7198e6b03155f6 Rob Clark     2013-07-19   51  	struct msm_ringbuffer *ring;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   52  	long sched_timeout;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   53  	char name[32];
>> 7198e6b03155f6 Rob Clark     2013-07-19   54  	int ret;
>> 7198e6b03155f6 Rob Clark     2013-07-19   55
>> f97decac5f4c2d Jordan Crouse 2017-10-20   56  	/* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
>> f97decac5f4c2d Jordan Crouse 2017-10-20   57  	BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
>> 7198e6b03155f6 Rob Clark     2013-07-19   58
>> 7198e6b03155f6 Rob Clark     2013-07-19   59  	ring = kzalloc(sizeof(*ring), GFP_KERNEL);
>> 7198e6b03155f6 Rob Clark     2013-07-19   60  	if (!ring) {
>> 7198e6b03155f6 Rob Clark     2013-07-19   61  		ret = -ENOMEM;
>> 7198e6b03155f6 Rob Clark     2013-07-19   62  		goto fail;
>> 7198e6b03155f6 Rob Clark     2013-07-19   63  	}
>> 7198e6b03155f6 Rob Clark     2013-07-19   64
>> 7198e6b03155f6 Rob Clark     2013-07-19   65  	ring->gpu = gpu;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   66  	ring->id = id;
>> 84c6127580c1ce Jordan Crouse 2018-11-07   67
>> f97decac5f4c2d Jordan Crouse 2017-10-20   68  	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
>> 604234f33658cd Jordan Crouse 2020-09-03   69  		check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
>> 604234f33658cd Jordan Crouse 2020-09-03   70  		gpu->aspace, &ring->bo, &ring->iova);
>> 8223286d62e296 Jordan Crouse 2017-07-27   71
>> 69a834c28fb514 Rob Clark     2016-05-24   72  	if (IS_ERR(ring->start)) {
>> 69a834c28fb514 Rob Clark     2016-05-24   73  		ret = PTR_ERR(ring->start);
>> 375f9a63a66bae Rob Clark     2021-07-27   74  		ring->start = NULL;
>> 69a834c28fb514 Rob Clark     2016-05-24   75  		goto fail;
>> 69a834c28fb514 Rob Clark     2016-05-24   76  	}
>> 0815d7749a6852 Jordan Crouse 2018-11-07   77
>> 0815d7749a6852 Jordan Crouse 2018-11-07   78  	msm_gem_object_set_name(ring->bo, "ring%d", id);
>> 0815d7749a6852 Jordan Crouse 2018-11-07   79
>> f97decac5f4c2d Jordan Crouse 2017-10-20   80  	ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
>> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81  	ring->next  = ring->start;
>> 7198e6b03155f6 Rob Clark     2013-07-19   82  	ring->cur   = ring->start;
>> 7198e6b03155f6 Rob Clark     2013-07-19   83
>> f97decac5f4c2d Jordan Crouse 2017-10-20   84  	ring->memptrs = memptrs;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   85  	ring->memptrs_iova = memptrs_iova;
>> f97decac5f4c2d Jordan Crouse 2017-10-20   86
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   87  	 /* currently managing hangcheck ourselves: */
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   88  	sched_timeout = MAX_SCHEDULE_TIMEOUT;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
>> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90  	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   91  			num_hw_submissions, 0, sched_timeout,
>> f1b7996551a40a Dave Airlie   2021-07-30   92  			NULL, NULL, to_msm_bo(ring->bo)->name);
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   93  	if (ret) {
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   94  		goto fail;
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   95  	}
>> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
>> f97decac5f4c2d Jordan Crouse 2017-10-20   97  	INIT_LIST_HEAD(&ring->submits);
>> 77d205290aa944 Rob Clark     2020-10-23   98  	spin_lock_init(&ring->submit_lock);
>> 77c406038e830a Rob Clark     2020-10-23   99  	spin_lock_init(&ring->preempt_lock);
>> f97decac5f4c2d Jordan Crouse 2017-10-20  100
>> f97decac5f4c2d Jordan Crouse 2017-10-20  101  	snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
>> f97decac5f4c2d Jordan Crouse 2017-10-20  102
>> da3d378dec8634 Rob Clark     2021-07-26  103  	ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
>> 7198e6b03155f6 Rob Clark     2013-07-19  104
>> 7198e6b03155f6 Rob Clark     2013-07-19  105  	return ring;
>> 7198e6b03155f6 Rob Clark     2013-07-19  106
>> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
>> 7198e6b03155f6 Rob Clark     2013-07-19  108  	msm_ringbuffer_destroy(ring);
>> 7198e6b03155f6 Rob Clark     2013-07-19  109  	return ERR_PTR(ret);
>> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
>> 7198e6b03155f6 Rob Clark     2013-07-19  111
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
>> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
>> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
>> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
>> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
>> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
>> r%2BsMQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-23  7:41         ` Christian König
  (?)
@ 2022-02-23 14:35           ` Alex Deucher
  -1 siblings, 0 replies; 23+ messages in thread
From: Alex Deucher @ 2022-02-23 14:35 UTC (permalink / raw)
  To: Christian König
  Cc: kbuild-all, Chen, Horace, Gu, JiaWei (Will),
	amd-gfx, Deng, Emily, dri-devel, Alex Deucher, Liu, Monk

On Wed, Feb 23, 2022 at 2:42 AM Christian König
<christian.koenig@amd.com> wrote:
>
> Well that's bad. This should not be pushed to amd-staging-drm-next at all.
>
> This patch is touching multiple drivers and therefore needs to go
> upstream through drm-misc-next.
>
> Alex can you drop that one before you send out a pull request? I'm going
> to cherry-pick it over to drm-misc-next.

Yeah, no problem.

Alex

>
> Thanks,
> Christian.
>
> Am 23.02.22 um 08:15 schrieb Gu, JiaWei (Will):
> > [AMD Official Use Only]
> >
> > Hi Christian,
> >
> > I noticed that and it has been fixed with the latest patch.
> > And I pushed it to amd-staging-drm-next already.
> >
> > Best regards,
> > Jiawei
> >
> > -----Original Message-----
> > From: Koenig, Christian <Christian.Koenig@amd.com>
> > Sent: Wednesday, February 23, 2022 3:12 PM
> > To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> > Cc: kbuild-all@lists.01.org
> > Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
> >
> > Hi Jiawei,
> >
> >
> > can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.
> >
> > I would rather like to push this sooner than later.
> >
> > Thanks,
> > Christian.
> >
> > Am 21.02.22 um 16:51 schrieb kernel test robot:
> >> Hi Jiawei,
> >>
> >> Thank you for the patch! Yet something to improve:
> >>
> >> [auto build test ERROR on drm/drm-next] [also build test ERROR on
> >> drm-intel/for-linux-next drm-exynos/exynos-drm-next
> >> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to
> >> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> And when submitting patch, we suggest to use '--base' as documented in
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> >> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
> >> served=0]
> >>
> >> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> >> base:   git://anongit.freedesktop.org/drm/drm drm-next
> >> config: ia64-allmodconfig
> >> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> >> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
> >> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> >> compiler: ia64-linux-gcc (GCC) 11.2.0
> >> reproduce (this is a W=1 build):
> >>           wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
> >>           chmod +x ~/bin/make.cross
> >>           # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
> >>           git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
> >>           git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
> >>           git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
> >>           # save the config file to linux build tree
> >>           mkdir build_dir
> >>           COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0
> >> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/
> >> drivers/gpu/drm/v3d/
> >>
> >> If you fix the issue, kindly add following tag as appropriate
> >> Reported-by: kernel test robot <lkp@intel.com>
> >>
> >> All errors (new ones prefixed by >>):
> >>
> >>      drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
> >>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
> >>         90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >>            |               ^~~~~~~~~~~~~~
> >>      In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
> >>                       from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
> >>      include/drm/gpu_scheduler.h:463:5: note: declared here
> >>        463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
> >>            |     ^~~~~~~~~~~~~~
> >> --
> >>      In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
> >>      drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
> >>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of
> >>>> function 'to_platform_device'
> >>>> [-Werror=implicit-function-declaration]
> >>        158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
> >>            |                          ^~~~~~~~~~~~~~~~~~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                 ^~~~~~~~~~~
> >>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument
> >>>> of '->' (have 'int')
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
> >>        404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                    ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
> >>        416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
> >>        429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                         ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
> >>        441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                                 ^~
> >>      cc1: some warnings being treated as errors
> >>
> >>
> >> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
> >>
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   49                 void *memptrs, uint64_t memptrs_iova)
> >> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   51         struct msm_ringbuffer *ring;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   52         long sched_timeout;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   53         char name[32];
> >> 7198e6b03155f6 Rob Clark     2013-07-19   54         int ret;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   55
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   56         /* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   57         BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> >> 7198e6b03155f6 Rob Clark     2013-07-19   58
> >> 7198e6b03155f6 Rob Clark     2013-07-19   59         ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> >> 7198e6b03155f6 Rob Clark     2013-07-19   60         if (!ring) {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   61                 ret = -ENOMEM;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   62                 goto fail;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   63         }
> >> 7198e6b03155f6 Rob Clark     2013-07-19   64
> >> 7198e6b03155f6 Rob Clark     2013-07-19   65         ring->gpu = gpu;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   66         ring->id = id;
> >> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   68         ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> >> 604234f33658cd Jordan Crouse 2020-09-03   69                 check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> >> 604234f33658cd Jordan Crouse 2020-09-03   70                 gpu->aspace, &ring->bo, &ring->iova);
> >> 8223286d62e296 Jordan Crouse 2017-07-27   71
> >> 69a834c28fb514 Rob Clark     2016-05-24   72         if (IS_ERR(ring->start)) {
> >> 69a834c28fb514 Rob Clark     2016-05-24   73                 ret = PTR_ERR(ring->start);
> >> 375f9a63a66bae Rob Clark     2021-07-27   74                 ring->start = NULL;
> >> 69a834c28fb514 Rob Clark     2016-05-24   75                 goto fail;
> >> 69a834c28fb514 Rob Clark     2016-05-24   76         }
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   78         msm_gem_object_set_name(ring->bo, "ring%d", id);
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   80         ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> >> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81         ring->next  = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   82         ring->cur   = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   83
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   84         ring->memptrs = memptrs;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   85         ring->memptrs_iova = memptrs_iova;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   87          /* currently managing hangcheck ourselves: */
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   88         sched_timeout = MAX_SCHEDULE_TIMEOUT;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   91                         num_hw_submissions, 0, sched_timeout,
> >> f1b7996551a40a Dave Airlie   2021-07-30   92                         NULL, NULL, to_msm_bo(ring->bo)->name);
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   93         if (ret) {
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   94                 goto fail;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   95         }
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   97         INIT_LIST_HEAD(&ring->submits);
> >> 77d205290aa944 Rob Clark     2020-10-23   98         spin_lock_init(&ring->submit_lock);
> >> 77c406038e830a Rob Clark     2020-10-23   99         spin_lock_init(&ring->preempt_lock);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  101         snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> >> da3d378dec8634 Rob Clark     2021-07-26  103         ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  104
> >> 7198e6b03155f6 Rob Clark     2013-07-19  105         return ring;
> >> 7198e6b03155f6 Rob Clark     2013-07-19  106
> >> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> >> 7198e6b03155f6 Rob Clark     2013-07-19  108         msm_ringbuffer_destroy(ring);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  109         return ERR_PTR(ret);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> >> 7198e6b03155f6 Rob Clark     2013-07-19  111
> >>
> >> ---
> >> 0-DAY CI Kernel Test Service, Intel Corporation
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&amp;reserved=0
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-23 14:35           ` Alex Deucher
  0 siblings, 0 replies; 23+ messages in thread
From: Alex Deucher @ 2022-02-23 14:35 UTC (permalink / raw)
  To: Christian König
  Cc: Grodzovsky, Andrey, kbuild-all, Chen, Horace, Gu, JiaWei (Will),
	amd-gfx, Deng, Emily, dri-devel, Alex Deucher, Liu, Monk

On Wed, Feb 23, 2022 at 2:42 AM Christian König
<christian.koenig@amd.com> wrote:
>
> Well that's bad. This should not be pushed to amd-staging-drm-next at all.
>
> This patch is touching multiple drivers and therefore needs to go
> upstream through drm-misc-next.
>
> Alex can you drop that one before you send out a pull request? I'm going
> to cherry-pick it over to drm-misc-next.

Yeah, no problem.

Alex

>
> Thanks,
> Christian.
>
> Am 23.02.22 um 08:15 schrieb Gu, JiaWei (Will):
> > [AMD Official Use Only]
> >
> > Hi Christian,
> >
> > I noticed that and it has been fixed with the latest patch.
> > And I pushed it to amd-staging-drm-next already.
> >
> > Best regards,
> > Jiawei
> >
> > -----Original Message-----
> > From: Koenig, Christian <Christian.Koenig@amd.com>
> > Sent: Wednesday, February 23, 2022 3:12 PM
> > To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu@amd.com>; dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> > Cc: kbuild-all@lists.01.org
> > Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
> >
> > Hi Jiawei,
> >
> >
> > can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.
> >
> > I would rather like to push this sooner than later.
> >
> > Thanks,
> > Christian.
> >
> > Am 21.02.22 um 16:51 schrieb kernel test robot:
> >> Hi Jiawei,
> >>
> >> Thank you for the patch! Yet something to improve:
> >>
> >> [auto build test ERROR on drm/drm-next] [also build test ERROR on
> >> drm-intel/for-linux-next drm-exynos/exynos-drm-next
> >> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to
> >> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> And when submitting patch, we suggest to use '--base' as documented in
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> >> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
> >> served=0]
> >>
> >> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> >> base:   git://anongit.freedesktop.org/drm/drm drm-next
> >> config: ia64-allmodconfig
> >> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> >> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
> >> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> >> compiler: ia64-linux-gcc (GCC) 11.2.0
> >> reproduce (this is a W=1 build):
> >>           wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
> >>           chmod +x ~/bin/make.cross
> >>           # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
> >>           git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
> >>           git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
> >>           git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
> >>           # save the config file to linux build tree
> >>           mkdir build_dir
> >>           COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0
> >> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/
> >> drivers/gpu/drm/v3d/
> >>
> >> If you fix the issue, kindly add following tag as appropriate
> >> Reported-by: kernel test robot <lkp@intel.com>
> >>
> >> All errors (new ones prefixed by >>):
> >>
> >>      drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
> >>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
> >>         90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >>            |               ^~~~~~~~~~~~~~
> >>      In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
> >>                       from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
> >>      include/drm/gpu_scheduler.h:463:5: note: declared here
> >>        463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
> >>            |     ^~~~~~~~~~~~~~
> >> --
> >>      In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
> >>      drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
> >>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of
> >>>> function 'to_platform_device'
> >>>> [-Werror=implicit-function-declaration]
> >>        158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
> >>            |                          ^~~~~~~~~~~~~~~~~~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                 ^~~~~~~~~~~
> >>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument
> >>>> of '->' (have 'int')
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
> >>        404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                    ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
> >>        416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
> >>        429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                         ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
> >>        441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                                 ^~
> >>      cc1: some warnings being treated as errors
> >>
> >>
> >> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
> >>
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   49                 void *memptrs, uint64_t memptrs_iova)
> >> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   51         struct msm_ringbuffer *ring;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   52         long sched_timeout;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   53         char name[32];
> >> 7198e6b03155f6 Rob Clark     2013-07-19   54         int ret;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   55
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   56         /* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   57         BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> >> 7198e6b03155f6 Rob Clark     2013-07-19   58
> >> 7198e6b03155f6 Rob Clark     2013-07-19   59         ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> >> 7198e6b03155f6 Rob Clark     2013-07-19   60         if (!ring) {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   61                 ret = -ENOMEM;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   62                 goto fail;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   63         }
> >> 7198e6b03155f6 Rob Clark     2013-07-19   64
> >> 7198e6b03155f6 Rob Clark     2013-07-19   65         ring->gpu = gpu;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   66         ring->id = id;
> >> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   68         ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> >> 604234f33658cd Jordan Crouse 2020-09-03   69                 check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> >> 604234f33658cd Jordan Crouse 2020-09-03   70                 gpu->aspace, &ring->bo, &ring->iova);
> >> 8223286d62e296 Jordan Crouse 2017-07-27   71
> >> 69a834c28fb514 Rob Clark     2016-05-24   72         if (IS_ERR(ring->start)) {
> >> 69a834c28fb514 Rob Clark     2016-05-24   73                 ret = PTR_ERR(ring->start);
> >> 375f9a63a66bae Rob Clark     2021-07-27   74                 ring->start = NULL;
> >> 69a834c28fb514 Rob Clark     2016-05-24   75                 goto fail;
> >> 69a834c28fb514 Rob Clark     2016-05-24   76         }
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   78         msm_gem_object_set_name(ring->bo, "ring%d", id);
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   80         ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> >> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81         ring->next  = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   82         ring->cur   = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   83
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   84         ring->memptrs = memptrs;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   85         ring->memptrs_iova = memptrs_iova;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   87          /* currently managing hangcheck ourselves: */
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   88         sched_timeout = MAX_SCHEDULE_TIMEOUT;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   91                         num_hw_submissions, 0, sched_timeout,
> >> f1b7996551a40a Dave Airlie   2021-07-30   92                         NULL, NULL, to_msm_bo(ring->bo)->name);
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   93         if (ret) {
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   94                 goto fail;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   95         }
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   97         INIT_LIST_HEAD(&ring->submits);
> >> 77d205290aa944 Rob Clark     2020-10-23   98         spin_lock_init(&ring->submit_lock);
> >> 77c406038e830a Rob Clark     2020-10-23   99         spin_lock_init(&ring->preempt_lock);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  101         snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> >> da3d378dec8634 Rob Clark     2021-07-26  103         ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  104
> >> 7198e6b03155f6 Rob Clark     2013-07-19  105         return ring;
> >> 7198e6b03155f6 Rob Clark     2013-07-19  106
> >> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> >> 7198e6b03155f6 Rob Clark     2013-07-19  108         msm_ringbuffer_destroy(ring);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  109         return ERR_PTR(ret);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> >> 7198e6b03155f6 Rob Clark     2013-07-19  111
> >>
> >> ---
> >> 0-DAY CI Kernel Test Service, Intel Corporation
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&amp;reserved=0
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-23 14:35           ` Alex Deucher
  0 siblings, 0 replies; 23+ messages in thread
From: Alex Deucher @ 2022-02-23 14:35 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 14618 bytes --]

On Wed, Feb 23, 2022 at 2:42 AM Christian König
<christian.koenig@amd.com> wrote:
>
> Well that's bad. This should not be pushed to amd-staging-drm-next at all.
>
> This patch is touching multiple drivers and therefore needs to go
> upstream through drm-misc-next.
>
> Alex can you drop that one before you send out a pull request? I'm going
> to cherry-pick it over to drm-misc-next.

Yeah, no problem.

Alex

>
> Thanks,
> Christian.
>
> Am 23.02.22 um 08:15 schrieb Gu, JiaWei (Will):
> > [AMD Official Use Only]
> >
> > Hi Christian,
> >
> > I noticed that and it has been fixed with the latest patch.
> > And I pushed it to amd-staging-drm-next already.
> >
> > Best regards,
> > Jiawei
> >
> > -----Original Message-----
> > From: Koenig, Christian <Christian.Koenig@amd.com>
> > Sent: Wednesday, February 23, 2022 3:12 PM
> > To: kernel test robot <lkp@intel.com>; Gu, JiaWei (Will) <JiaWei.Gu(a)amd.com>; dri-devel(a)lists.freedesktop.org; amd-gfx(a)lists.freedesktop.org; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu(a)amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> > Cc: kbuild-all(a)lists.01.org
> > Subject: Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
> >
> > Hi Jiawei,
> >
> >
> > can you take a look at this? The kernel build robots screaming that this breaks the V3D build. Probably just a typo or missing include.
> >
> > I would rather like to push this sooner than later.
> >
> > Thanks,
> > Christian.
> >
> > Am 21.02.22 um 16:51 schrieb kernel test robot:
> >> Hi Jiawei,
> >>
> >> Thank you for the patch! Yet something to improve:
> >>
> >> [auto build test ERROR on drm/drm-next] [also build test ERROR on
> >> drm-intel/for-linux-next drm-exynos/exynos-drm-next
> >> tegra-drm/drm/tegra/for-next v5.17-rc5 next-20220217] [cannot apply to
> >> drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> And when submitting patch, we suggest to use '--base' as documented in
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> >> scm.com%2Fdocs%2Fgit-format-patch&amp;data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&amp;re
> >> served=0]
> >>
> >> url:    https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FJiawei-Gu%2Fdrm-sched-Add-device-pointer-to-drm_gpu_scheduler%2F20220221-175818&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&amp;reserved=0
> >> base:   git://anongit.freedesktop.org/drm/drm drm-next
> >> config: ia64-allmodconfig
> >> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> >> nload.01.org%2F0day-ci%2Farchive%2F20220221%2F202202212330.nxcvFWEe-lk
> >> p%40intel.com%2Fconfig&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&amp;reserved=0)
> >> compiler: ia64-linux-gcc (GCC) 11.2.0
> >> reproduce (this is a W=1 build):
> >>           wget https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&amp;reserved=0 -O ~/bin/make.cross
> >>           chmod +x ~/bin/make.cross
> >>           # https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F9fdafca855faca0a3b8f213f024985c4112fa0bb&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&amp;reserved=0
> >>           git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&amp;data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&amp;reserved=0
> >>           git fetch --no-tags linux-review Jiawei-Gu/drm-sched-Add-device-pointer-to-drm_gpu_scheduler/20220221-175818
> >>           git checkout 9fdafca855faca0a3b8f213f024985c4112fa0bb
> >>           # save the config file to linux build tree
> >>           mkdir build_dir
> >>           COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0
> >> make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/gpu/drm/msm/
> >> drivers/gpu/drm/v3d/
> >>
> >> If you fix the issue, kindly add following tag as appropriate
> >> Reported-by: kernel test robot <lkp@intel.com>
> >>
> >> All errors (new ones prefixed by >>):
> >>
> >>      drivers/gpu/drm/msm/msm_ringbuffer.c: In function 'msm_ringbuffer_new':
> >>>> drivers/gpu/drm/msm/msm_ringbuffer.c:90:15: error: too few arguments to function 'drm_sched_init'
> >>         90 |         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >>            |               ^~~~~~~~~~~~~~
> >>      In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
> >>                       from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
> >>      include/drm/gpu_scheduler.h:463:5: note: declared here
> >>        463 | int drm_sched_init(struct drm_gpu_scheduler *sched,
> >>            |     ^~~~~~~~~~~~~~
> >> --
> >>      In file included from drivers/gpu/drm/v3d/v3d_sched.c:23:
> >>      drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_sched_init':
> >>>> drivers/gpu/drm/v3d/v3d_drv.h:158:26: error: implicit declaration of
> >>>> function 'to_platform_device'
> >>>> [-Werror=implicit-function-declaration]
> >>        158 | #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)
> >>            |                          ^~~~~~~~~~~~~~~~~~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:394:49: note: in expansion of macro 'v3d_to_pdev'
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                 ^~~~~~~~~~~
> >>>> drivers/gpu/drm/v3d/v3d_sched.c:394:65: error: invalid type argument
> >>>> of '->' (have 'int')
> >>        394 |                              NULL, "v3d_bin", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:404:68: error: invalid type argument of '->' (have 'int')
> >>        404 |                              NULL, "v3d_render", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                    ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:416:65: error: invalid type argument of '->' (have 'int')
> >>        416 |                              NULL, "v3d_tfu", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                 ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:429:73: error: invalid type argument of '->' (have 'int')
> >>        429 |                                      NULL, "v3d_csd", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                         ^~
> >>      drivers/gpu/drm/v3d/v3d_sched.c:441:81: error: invalid type argument of '->' (have 'int')
> >>        441 |                                      NULL, "v3d_cache_clean", &(v3d_to_pdev(v3d)->dev));
> >>            |                                                                                 ^~
> >>      cc1: some warnings being treated as errors
> >>
> >>
> >> vim +/drm_sched_init +90 drivers/gpu/drm/msm/msm_ringbuffer.c
> >>
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   47
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   48  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   49                 void *memptrs, uint64_t memptrs_iova)
> >> 7198e6b03155f6 Rob Clark     2013-07-19   50  {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   51         struct msm_ringbuffer *ring;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   52         long sched_timeout;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   53         char name[32];
> >> 7198e6b03155f6 Rob Clark     2013-07-19   54         int ret;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   55
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   56         /* We assume everwhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   57         BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
> >> 7198e6b03155f6 Rob Clark     2013-07-19   58
> >> 7198e6b03155f6 Rob Clark     2013-07-19   59         ring = kzalloc(sizeof(*ring), GFP_KERNEL);
> >> 7198e6b03155f6 Rob Clark     2013-07-19   60         if (!ring) {
> >> 7198e6b03155f6 Rob Clark     2013-07-19   61                 ret = -ENOMEM;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   62                 goto fail;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   63         }
> >> 7198e6b03155f6 Rob Clark     2013-07-19   64
> >> 7198e6b03155f6 Rob Clark     2013-07-19   65         ring->gpu = gpu;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   66         ring->id = id;
> >> 84c6127580c1ce Jordan Crouse 2018-11-07   67
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   68         ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
> >> 604234f33658cd Jordan Crouse 2020-09-03   69                 check_apriv(gpu, MSM_BO_WC | MSM_BO_GPU_READONLY),
> >> 604234f33658cd Jordan Crouse 2020-09-03   70                 gpu->aspace, &ring->bo, &ring->iova);
> >> 8223286d62e296 Jordan Crouse 2017-07-27   71
> >> 69a834c28fb514 Rob Clark     2016-05-24   72         if (IS_ERR(ring->start)) {
> >> 69a834c28fb514 Rob Clark     2016-05-24   73                 ret = PTR_ERR(ring->start);
> >> 375f9a63a66bae Rob Clark     2021-07-27   74                 ring->start = NULL;
> >> 69a834c28fb514 Rob Clark     2016-05-24   75                 goto fail;
> >> 69a834c28fb514 Rob Clark     2016-05-24   76         }
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   77
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   78         msm_gem_object_set_name(ring->bo, "ring%d", id);
> >> 0815d7749a6852 Jordan Crouse 2018-11-07   79
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   80         ring->end   = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2);
> >> 4c7085a5d581a5 Jordan Crouse 2017-10-20   81         ring->next  = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   82         ring->cur   = ring->start;
> >> 7198e6b03155f6 Rob Clark     2013-07-19   83
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   84         ring->memptrs = memptrs;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   85         ring->memptrs_iova = memptrs_iova;
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   86
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   87          /* currently managing hangcheck ourselves: */
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   88         sched_timeout = MAX_SCHEDULE_TIMEOUT;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   89
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27  @90         ret = drm_sched_init(&ring->sched, &msm_sched_ops,
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   91                         num_hw_submissions, 0, sched_timeout,
> >> f1b7996551a40a Dave Airlie   2021-07-30   92                         NULL, NULL, to_msm_bo(ring->bo)->name);
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   93         if (ret) {
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   94                 goto fail;
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   95         }
> >> 1d8a5ca436ee4a Rob Clark     2021-07-27   96
> >> f97decac5f4c2d Jordan Crouse 2017-10-20   97         INIT_LIST_HEAD(&ring->submits);
> >> 77d205290aa944 Rob Clark     2020-10-23   98         spin_lock_init(&ring->submit_lock);
> >> 77c406038e830a Rob Clark     2020-10-23   99         spin_lock_init(&ring->preempt_lock);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  100
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  101         snprintf(name, sizeof(name), "gpu-ring-%d", ring->id);
> >> f97decac5f4c2d Jordan Crouse 2017-10-20  102
> >> da3d378dec8634 Rob Clark     2021-07-26  103         ring->fctx = msm_fence_context_alloc(gpu->dev, &ring->memptrs->fence, name);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  104
> >> 7198e6b03155f6 Rob Clark     2013-07-19  105         return ring;
> >> 7198e6b03155f6 Rob Clark     2013-07-19  106
> >> 7198e6b03155f6 Rob Clark     2013-07-19  107  fail:
> >> 7198e6b03155f6 Rob Clark     2013-07-19  108         msm_ringbuffer_destroy(ring);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  109         return ERR_PTR(ret);
> >> 7198e6b03155f6 Rob Clark     2013-07-19  110  }
> >> 7198e6b03155f6 Rob Clark     2013-07-19  111
> >>
> >> ---
> >> 0-DAY CI Kernel Test Service, Intel Corporation
> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >> s.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&amp;sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&amp;reserved=0
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-22 10:29 Jiawei Gu
  0 siblings, 0 replies; 23+ messages in thread
From: Jiawei Gu @ 2022-02-22 10:29 UTC (permalink / raw)
  To: dri-devel, amd-gfx, Christian.Koenig, Andrey.Grodzovsky,
	Monk.Liu, Emily.Deng, Horace.Chen
  Cc: Jiawei Gu

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
scenario.

v2: amend all calls of drm_sched_init()
v3: fill dev pointer for all drm_sched_init() calls

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
 drivers/gpu/drm/lima/lima_sched.c         |  2 +-
 drivers/gpu/drm/msm/msm_ringbuffer.c      |  2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
 drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
 drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
 include/drm/gpu_scheduler.h               |  3 ++-
 8 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 45977a72b5dd..cd2d594d4ffc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -502,7 +502,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
 
 	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
 			   num_hw_submission, amdgpu_job_hang_limit,
-			   timeout, NULL, sched_score, ring->name);
+			   timeout, NULL, sched_score, ring->name, adev->dev);
 	if (r) {
 		DRM_ERROR("Failed to create scheduler on ring %s.\n",
 			  ring->name);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 58f593b278c1..35e5ef7dbdcc 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -195,7 +195,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
 	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
 			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
 			     msecs_to_jiffies(500), NULL, NULL,
-			     dev_name(gpu->dev));
+			     dev_name(gpu->dev), gpu->dev);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index 5612d73f238f..8d517c8880e3 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -490,7 +490,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
 	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
 			      lima_job_hang_limit,
 			      msecs_to_jiffies(timeout), NULL,
-			      NULL, name);
+			      NULL, name, pipe->ldev->dev);
 }
 
 void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.c b/drivers/gpu/drm/msm/msm_ringbuffer.c
index 3bbf574c3bdc..367a6aaa3a20 100644
--- a/drivers/gpu/drm/msm/msm_ringbuffer.c
+++ b/drivers/gpu/drm/msm/msm_ringbuffer.c
@@ -89,7 +89,7 @@ struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
 
 	ret = drm_sched_init(&ring->sched, &msm_sched_ops,
 			num_hw_submissions, 0, sched_timeout,
-			NULL, NULL, to_msm_bo(ring->bo)->name);
+			NULL, NULL, to_msm_bo(ring->bo)->name, gpu->dev->dev);
 	if (ret) {
 		goto fail;
 	}
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 908d79520853..a6925dbb6224 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -812,7 +812,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
 				     nentries, 0,
 				     msecs_to_jiffies(JOB_TIMEOUT_MS),
 				     pfdev->reset.wq,
-				     NULL, "pan_js");
+				     NULL, "pan_js", pfdev->dev);
 		if (ret) {
 			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
 			goto err_sched;
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index f91fb31ab7a7..b81fceb0b8a2 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -491,7 +491,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -957,7 +957,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -991,7 +991,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit,
 		   long timeout, struct workqueue_struct *timeout_wq,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -1001,6 +1001,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout_wq = timeout_wq ? : system_wq;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -1018,7 +1019,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
index e0cb7d0697a7..39459ae96f30 100644
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -391,7 +391,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_bin_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_bin");
+			     NULL, "v3d_bin", v3d->drm.dev);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
 		return ret;
@@ -401,7 +401,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_render_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_render");
+			     NULL, "v3d_render", v3d->drm.dev);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
 			ret);
@@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_tfu_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms), NULL,
-			     NULL, "v3d_tfu");
+			     NULL, "v3d_tfu", v3d->drm.dev);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
 			ret);
@@ -426,7 +426,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_csd_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms), NULL,
-				     NULL, "v3d_csd");
+				     NULL, "v3d_csd", v3d->drm.dev);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
 				ret);
@@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_cache_clean_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms), NULL,
-				     NULL, "v3d_cache_clean");
+				     NULL, "v3d_cache_clean", v3d->drm.dev);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
 				ret);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index bbc22fad8d80..944f83ef9f2e 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -457,13 +457,14 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit,
 		   long timeout, struct workqueue_struct *timeout_wq,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);
 int drm_sched_job_init(struct drm_sched_job *job,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-21  3:32 ` Gu, JiaWei (Will)
@ 2022-02-21  5:22   ` Andrey Grodzovsky
  0 siblings, 0 replies; 23+ messages in thread
From: Andrey Grodzovsky @ 2022-02-21  5:22 UTC (permalink / raw)
  To: Gu, JiaWei (Will),
	dri-devel, amd-gfx, Koenig, Christian, Liu, Monk, Deng, Emily,
	Chen, Horace

On 2022-02-20 22:32, Gu, JiaWei (Will) wrote:

> [AMD Official Use Only]
>
> Pinging.
>
> -----Original Message-----
> From: Jiawei Gu <Jiawei.Gu@amd.com>
> Sent: Thursday, February 17, 2022 6:44 PM
> To: dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Koenig, Christian <Christian.Koenig@amd.com>; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
> Cc: Gu, JiaWei (Will) <JiaWei.Gu@amd.com>
> Subject: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
>
> Add device pointer so scheduler's printing can use
> DRM_DEV_ERROR() instead, which makes life easier under multiple GPU scenario.
>
> v2: amend all calls of drm_sched_init()
>
> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
>   drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
>   drivers/gpu/drm/lima/lima_sched.c         |  2 +-
>   drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
>   drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
>   drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
>   include/drm/gpu_scheduler.h               |  3 ++-
>   7 files changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> index 4787cb3acaed..98217b1487fe 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> @@ -508,7 +508,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
>   
>   	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
>   			   num_hw_submission, amdgpu_job_hang_limit,
> -			   timeout, sched_score, ring->name);
> +			   timeout, sched_score, ring->name, adev->dev);
>   	if (r) {
>   		DRM_ERROR("Failed to create scheduler on ring %s.\n",
>   			  ring->name);
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> index 19826e504efc..4240f2ae0ab3 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> @@ -190,7 +190,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
>   
>   	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
>   			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
> -			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev));
> +			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev), NULL);
>   	if (ret)
>   		return ret;
>   
> diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
> index ecf3267334ff..4b3a43a2b3e3 100644
> --- a/drivers/gpu/drm/lima/lima_sched.c
> +++ b/drivers/gpu/drm/lima/lima_sched.c
> @@ -509,7 +509,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
>   
>   	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
>   			      lima_job_hang_limit, msecs_to_jiffies(timeout),
> -			      NULL, name);
> +			      NULL, name, NULL);
>   }
>   
>   void lima_sched_pipe_fini(struct lima_sched_pipe *pipe) diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
> index 2df3e999a38d..215709d61315 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_job.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c
> @@ -627,7 +627,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
>   		ret = drm_sched_init(&js->queue[j].sched,
>   				     &panfrost_sched_ops,
>   				     1, 0, msecs_to_jiffies(JOB_TIMEOUT_MS),
> -				     NULL, "pan_js");
> +				     NULL, "pan_js", NULL);


You can extract dev from pfdev  here so no reason to skip it. Please
see in other driver if it's also possible to do.

Andrey


>   		if (ret) {
>   			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
>   			goto err_sched;
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 3e0bbc797eaa..4404af323321 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(s_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   		} else
>   			drm_sched_job_done(s_job);
> @@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(sched_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   			dma_fence_put(fence);
>   		} else {
> @@ -846,7 +846,7 @@ static int drm_sched_main(void *param)  int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   unsigned hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name)
> +		   atomic_t *score, const char *name, struct device *dev)
>   {
>   	int i, ret;
>   	sched->ops = ops;
> @@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	sched->timeout = timeout;
>   	sched->hang_limit = hang_limit;
>   	sched->score = score ? score : &sched->_score;
> +	sched->dev = dev;
>   	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
>   		drm_sched_rq_init(sched, &sched->sched_rq[i]);
>   
> @@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	if (IS_ERR(sched->thread)) {
>   		ret = PTR_ERR(sched->thread);
>   		sched->thread = NULL;
> -		DRM_ERROR("Failed to create scheduler for %s.\n", name);
> +		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n",
> +name);
>   		return ret;
>   	}
>   
> diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c index 8992480c88fa..6d68b155c3cc 100644
> --- a/drivers/gpu/drm/v3d/v3d_sched.c
> +++ b/drivers/gpu/drm/v3d/v3d_sched.c
> @@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_bin_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_bin");
> +			     NULL, "v3d_bin", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
>   		return ret;
> @@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_render_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_render");
> +			     NULL, "v3d_render", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
>   			ret);
> @@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_tfu_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_tfu");
> +			     NULL, "v3d_tfu", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
>   			ret);
> @@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_csd_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms),
> -				     NULL, "v3d_csd");
> +				     NULL, "v3d_csd", NULL);
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
>   				ret);
> @@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_cache_clean_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms),
> -				     NULL, "v3d_cache_clean");
> +				     NULL, "v3d_cache_clean", NULL);
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
>   				ret);
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h index d18af49fd009..38a479879fdb 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
>   	atomic_t                        _score;
>   	bool				ready;
>   	bool				free_guilty;
> +	struct device			*dev;
>   };
>   
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   uint32_t hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name);
> +		   atomic_t *score, const char *name, struct device *dev);
>   
>   void drm_sched_fini(struct drm_gpu_scheduler *sched);  int drm_sched_job_init(struct drm_sched_job *job,
> --
> 2.17.1

^ permalink raw reply	[flat|nested] 23+ messages in thread

* RE: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-17 10:43 Jiawei Gu
@ 2022-02-21  3:32 ` Gu, JiaWei (Will)
  2022-02-21  5:22   ` Andrey Grodzovsky
  0 siblings, 1 reply; 23+ messages in thread
From: Gu, JiaWei (Will) @ 2022-02-21  3:32 UTC (permalink / raw)
  To: Gu, JiaWei (Will),
	dri-devel, amd-gfx, Koenig, Christian, Grodzovsky, Andrey, Liu,
	Monk, Deng, Emily, Chen, Horace

[AMD Official Use Only]

Pinging.

-----Original Message-----
From: Jiawei Gu <Jiawei.Gu@amd.com> 
Sent: Thursday, February 17, 2022 6:44 PM
To: dri-devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; Koenig, Christian <Christian.Koenig@amd.com>; Grodzovsky, Andrey <Andrey.Grodzovsky@amd.com>; Liu, Monk <Monk.Liu@amd.com>; Deng, Emily <Emily.Deng@amd.com>; Chen, Horace <Horace.Chen@amd.com>
Cc: Gu, JiaWei (Will) <JiaWei.Gu@amd.com>
Subject: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU scenario.

v2: amend all calls of drm_sched_init()

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
 drivers/gpu/drm/lima/lima_sched.c         |  2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
 drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
 drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
 include/drm/gpu_scheduler.h               |  3 ++-
 7 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 4787cb3acaed..98217b1487fe 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -508,7 +508,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
 
 	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
 			   num_hw_submission, amdgpu_job_hang_limit,
-			   timeout, sched_score, ring->name);
+			   timeout, sched_score, ring->name, adev->dev);
 	if (r) {
 		DRM_ERROR("Failed to create scheduler on ring %s.\n",
 			  ring->name);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 19826e504efc..4240f2ae0ab3 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -190,7 +190,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
 
 	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
 			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
-			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev));
+			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev), NULL);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index ecf3267334ff..4b3a43a2b3e3 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -509,7 +509,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
 
 	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
 			      lima_job_hang_limit, msecs_to_jiffies(timeout),
-			      NULL, name);
+			      NULL, name, NULL);
 }
 
 void lima_sched_pipe_fini(struct lima_sched_pipe *pipe) diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 2df3e999a38d..215709d61315 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -627,7 +627,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
 		ret = drm_sched_init(&js->queue[j].sched,
 				     &panfrost_sched_ops,
 				     1, 0, msecs_to_jiffies(JOB_TIMEOUT_MS),
-				     NULL, "pan_js");
+				     NULL, "pan_js", NULL);
 		if (ret) {
 			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
 			goto err_sched;
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 3e0bbc797eaa..4404af323321 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -846,7 +846,7 @@ static int drm_sched_main(void *param)  int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout = timeout;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", 
+name);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c index 8992480c88fa..6d68b155c3cc 100644
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_bin_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_bin");
+			     NULL, "v3d_bin", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
 		return ret;
@@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_render_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_render");
+			     NULL, "v3d_render", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
 			ret);
@@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_tfu_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_tfu");
+			     NULL, "v3d_tfu", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
 			ret);
@@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_csd_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_csd");
+				     NULL, "v3d_csd", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
 				ret);
@@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_cache_clean_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_cache_clean");
+				     NULL, "v3d_cache_clean", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
 				ret);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h index d18af49fd009..38a479879fdb 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);  int drm_sched_job_init(struct drm_sched_job *job,
--
2.17.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-17 10:43 Jiawei Gu
  2022-02-21  3:32 ` Gu, JiaWei (Will)
  0 siblings, 1 reply; 23+ messages in thread
From: Jiawei Gu @ 2022-02-17 10:43 UTC (permalink / raw)
  To: dri-devel, amd-gfx, Christian.Koenig, Andrey.Grodzovsky,
	Monk.Liu, Emily.Deng, Horace.Chen
  Cc: Jiawei Gu

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
scenario.

v2: amend all calls of drm_sched_init()

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
 drivers/gpu/drm/lima/lima_sched.c         |  2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
 drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
 drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
 include/drm/gpu_scheduler.h               |  3 ++-
 7 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 4787cb3acaed..98217b1487fe 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -508,7 +508,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
 
 	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
 			   num_hw_submission, amdgpu_job_hang_limit,
-			   timeout, sched_score, ring->name);
+			   timeout, sched_score, ring->name, adev->dev);
 	if (r) {
 		DRM_ERROR("Failed to create scheduler on ring %s.\n",
 			  ring->name);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 19826e504efc..4240f2ae0ab3 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -190,7 +190,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
 
 	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
 			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
-			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev));
+			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev), NULL);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index ecf3267334ff..4b3a43a2b3e3 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -509,7 +509,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
 
 	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
 			      lima_job_hang_limit, msecs_to_jiffies(timeout),
-			      NULL, name);
+			      NULL, name, NULL);
 }
 
 void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 2df3e999a38d..215709d61315 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -627,7 +627,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
 		ret = drm_sched_init(&js->queue[j].sched,
 				     &panfrost_sched_ops,
 				     1, 0, msecs_to_jiffies(JOB_TIMEOUT_MS),
-				     NULL, "pan_js");
+				     NULL, "pan_js", NULL);
 		if (ret) {
 			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
 			goto err_sched;
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 3e0bbc797eaa..4404af323321 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout = timeout;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
index 8992480c88fa..6d68b155c3cc 100644
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_bin_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_bin");
+			     NULL, "v3d_bin", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
 		return ret;
@@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_render_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_render");
+			     NULL, "v3d_render", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
 			ret);
@@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_tfu_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_tfu");
+			     NULL, "v3d_tfu", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
 			ret);
@@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_csd_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_csd");
+				     NULL, "v3d_csd", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
 				ret);
@@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_cache_clean_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_cache_clean");
+				     NULL, "v3d_cache_clean", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
 				ret);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index d18af49fd009..38a479879fdb 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);
 int drm_sched_job_init(struct drm_sched_job *job,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-17 10:38 Jiawei Gu
@ 2022-02-17 10:40 ` Christian König
  0 siblings, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-17 10:40 UTC (permalink / raw)
  To: Jiawei Gu, amd-gfx, Andrey.Grodzovsky, Monk.Liu, Emily.Deng, Horace.Chen

Am 17.02.22 um 11:38 schrieb Jiawei Gu:
> Add device pointer so scheduler's printing can use
> DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
> scenario.
>
> v2: amend all calls of drm_sched_init()

That looks better, but please send it to the dri-devel mailing list as well.

Thanks,
Christian.

>
> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
>   drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
>   drivers/gpu/drm/lima/lima_sched.c         |  2 +-
>   drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
>   drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
>   drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
>   include/drm/gpu_scheduler.h               |  3 ++-
>   7 files changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> index 4787cb3acaed..98217b1487fe 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> @@ -508,7 +508,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
>   
>   	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
>   			   num_hw_submission, amdgpu_job_hang_limit,
> -			   timeout, sched_score, ring->name);
> +			   timeout, sched_score, ring->name, adev->dev);
>   	if (r) {
>   		DRM_ERROR("Failed to create scheduler on ring %s.\n",
>   			  ring->name);
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> index 19826e504efc..4240f2ae0ab3 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
> @@ -190,7 +190,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
>   
>   	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
>   			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
> -			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev));
> +			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev), NULL);
>   	if (ret)
>   		return ret;
>   
> diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
> index ecf3267334ff..4b3a43a2b3e3 100644
> --- a/drivers/gpu/drm/lima/lima_sched.c
> +++ b/drivers/gpu/drm/lima/lima_sched.c
> @@ -509,7 +509,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
>   
>   	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
>   			      lima_job_hang_limit, msecs_to_jiffies(timeout),
> -			      NULL, name);
> +			      NULL, name, NULL);
>   }
>   
>   void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
> diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
> index 2df3e999a38d..215709d61315 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_job.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c
> @@ -627,7 +627,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
>   		ret = drm_sched_init(&js->queue[j].sched,
>   				     &panfrost_sched_ops,
>   				     1, 0, msecs_to_jiffies(JOB_TIMEOUT_MS),
> -				     NULL, "pan_js");
> +				     NULL, "pan_js", NULL);
>   		if (ret) {
>   			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
>   			goto err_sched;
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 3e0bbc797eaa..4404af323321 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(s_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   		} else
>   			drm_sched_job_done(s_job);
> @@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(sched_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   			dma_fence_put(fence);
>   		} else {
> @@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   unsigned hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name)
> +		   atomic_t *score, const char *name, struct device *dev)
>   {
>   	int i, ret;
>   	sched->ops = ops;
> @@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	sched->timeout = timeout;
>   	sched->hang_limit = hang_limit;
>   	sched->score = score ? score : &sched->_score;
> +	sched->dev = dev;
>   	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
>   		drm_sched_rq_init(sched, &sched->sched_rq[i]);
>   
> @@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	if (IS_ERR(sched->thread)) {
>   		ret = PTR_ERR(sched->thread);
>   		sched->thread = NULL;
> -		DRM_ERROR("Failed to create scheduler for %s.\n", name);
> +		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
>   		return ret;
>   	}
>   
> diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
> index 8992480c88fa..6d68b155c3cc 100644
> --- a/drivers/gpu/drm/v3d/v3d_sched.c
> +++ b/drivers/gpu/drm/v3d/v3d_sched.c
> @@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_bin_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_bin");
> +			     NULL, "v3d_bin", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
>   		return ret;
> @@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_render_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_render");
> +			     NULL, "v3d_render", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
>   			ret);
> @@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   			     &v3d_tfu_sched_ops,
>   			     hw_jobs_limit, job_hang_limit,
>   			     msecs_to_jiffies(hang_limit_ms),
> -			     NULL, "v3d_tfu");
> +			     NULL, "v3d_tfu", NULL);
>   	if (ret) {
>   		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
>   			ret);
> @@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_csd_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms),
> -				     NULL, "v3d_csd");
> +				     NULL, "v3d_csd", NULL);
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
>   				ret);
> @@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
>   				     &v3d_cache_clean_sched_ops,
>   				     hw_jobs_limit, job_hang_limit,
>   				     msecs_to_jiffies(hang_limit_ms),
> -				     NULL, "v3d_cache_clean");
> +				     NULL, "v3d_cache_clean", NULL);
>   		if (ret) {
>   			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
>   				ret);
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index d18af49fd009..38a479879fdb 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
>   	atomic_t                        _score;
>   	bool				ready;
>   	bool				free_guilty;
> +	struct device			*dev;
>   };
>   
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   uint32_t hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name);
> +		   atomic_t *score, const char *name, struct device *dev);
>   
>   void drm_sched_fini(struct drm_gpu_scheduler *sched);
>   int drm_sched_job_init(struct drm_sched_job *job,


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-17 10:38 Jiawei Gu
  2022-02-17 10:40 ` Christian König
  0 siblings, 1 reply; 23+ messages in thread
From: Jiawei Gu @ 2022-02-17 10:38 UTC (permalink / raw)
  To: amd-gfx, Christian.Koenig, Andrey.Grodzovsky, Monk.Liu,
	Emily.Deng, Horace.Chen
  Cc: Jiawei Gu

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
scenario.

v2: amend all calls of drm_sched_init()

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c   |  2 +-
 drivers/gpu/drm/lima/lima_sched.c         |  2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c   |  2 +-
 drivers/gpu/drm/scheduler/sched_main.c    |  9 +++++----
 drivers/gpu/drm/v3d/v3d_sched.c           | 10 +++++-----
 include/drm/gpu_scheduler.h               |  3 ++-
 7 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 4787cb3acaed..98217b1487fe 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -508,7 +508,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
 
 	r = drm_sched_init(&ring->sched, &amdgpu_sched_ops,
 			   num_hw_submission, amdgpu_job_hang_limit,
-			   timeout, sched_score, ring->name);
+			   timeout, sched_score, ring->name, adev->dev);
 	if (r) {
 		DRM_ERROR("Failed to create scheduler on ring %s.\n",
 			  ring->name);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 19826e504efc..4240f2ae0ab3 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -190,7 +190,7 @@ int etnaviv_sched_init(struct etnaviv_gpu *gpu)
 
 	ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops,
 			     etnaviv_hw_jobs_limit, etnaviv_job_hang_limit,
-			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev));
+			     msecs_to_jiffies(500), NULL, dev_name(gpu->dev), NULL);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index ecf3267334ff..4b3a43a2b3e3 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -509,7 +509,7 @@ int lima_sched_pipe_init(struct lima_sched_pipe *pipe, const char *name)
 
 	return drm_sched_init(&pipe->base, &lima_sched_ops, 1,
 			      lima_job_hang_limit, msecs_to_jiffies(timeout),
-			      NULL, name);
+			      NULL, name, NULL);
 }
 
 void lima_sched_pipe_fini(struct lima_sched_pipe *pipe)
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 2df3e999a38d..215709d61315 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -627,7 +627,7 @@ int panfrost_job_init(struct panfrost_device *pfdev)
 		ret = drm_sched_init(&js->queue[j].sched,
 				     &panfrost_sched_ops,
 				     1, 0, msecs_to_jiffies(JOB_TIMEOUT_MS),
-				     NULL, "pan_js");
+				     NULL, "pan_js", NULL);
 		if (ret) {
 			dev_err(pfdev->dev, "Failed to create scheduler: %d.", ret);
 			goto err_sched;
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 3e0bbc797eaa..4404af323321 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout = timeout;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
 		return ret;
 	}
 
diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c
index 8992480c88fa..6d68b155c3cc 100644
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_bin_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_bin");
+			     NULL, "v3d_bin", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
 		return ret;
@@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_render_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_render");
+			     NULL, "v3d_render", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
 			ret);
@@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 			     &v3d_tfu_sched_ops,
 			     hw_jobs_limit, job_hang_limit,
 			     msecs_to_jiffies(hang_limit_ms),
-			     NULL, "v3d_tfu");
+			     NULL, "v3d_tfu", NULL);
 	if (ret) {
 		dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
 			ret);
@@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_csd_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_csd");
+				     NULL, "v3d_csd", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
 				ret);
@@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
 				     &v3d_cache_clean_sched_ops,
 				     hw_jobs_limit, job_hang_limit,
 				     msecs_to_jiffies(hang_limit_ms),
-				     NULL, "v3d_cache_clean");
+				     NULL, "v3d_cache_clean", NULL);
 		if (ret) {
 			dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
 				ret);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index d18af49fd009..38a479879fdb 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);
 int drm_sched_job_init(struct drm_sched_job *job,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-15 11:29 Jiawei Gu
  2022-02-15 12:26 ` Christian König
@ 2022-02-15 13:04 ` Andrey Grodzovsky
  1 sibling, 0 replies; 23+ messages in thread
From: Andrey Grodzovsky @ 2022-02-15 13:04 UTC (permalink / raw)
  To: Jiawei Gu, amd-gfx, christian.koenig, monk.liu, emily.deng, horace.chen

Acked-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>

Andrey

On 2022-02-15 06:29, Jiawei Gu wrote:
> Add device pointer so scheduler's printing can use
> DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
> scenario.
>
> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
> ---
>   drivers/gpu/drm/scheduler/sched_main.c | 9 +++++----
>   include/drm/gpu_scheduler.h            | 3 ++-
>   2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 3e0bbc797eaa..4404af323321 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(s_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   		} else
>   			drm_sched_job_done(s_job);
> @@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(sched_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   			dma_fence_put(fence);
>   		} else {
> @@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   unsigned hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name)
> +		   atomic_t *score, const char *name, struct device *dev)
>   {
>   	int i, ret;
>   	sched->ops = ops;
> @@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	sched->timeout = timeout;
>   	sched->hang_limit = hang_limit;
>   	sched->score = score ? score : &sched->_score;
> +	sched->dev = dev;
>   	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
>   		drm_sched_rq_init(sched, &sched->sched_rq[i]);
>   
> @@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	if (IS_ERR(sched->thread)) {
>   		ret = PTR_ERR(sched->thread);
>   		sched->thread = NULL;
> -		DRM_ERROR("Failed to create scheduler for %s.\n", name);
> +		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
>   		return ret;
>   	}
>   
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index d18af49fd009..38a479879fdb 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
>   	atomic_t                        _score;
>   	bool				ready;
>   	bool				free_guilty;
> +	struct device			*dev;
>   };
>   
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   uint32_t hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name);
> +		   atomic_t *score, const char *name, struct device *dev);
>   
>   void drm_sched_fini(struct drm_gpu_scheduler *sched);
>   int drm_sched_job_init(struct drm_sched_job *job,

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
  2022-02-15 11:29 Jiawei Gu
@ 2022-02-15 12:26 ` Christian König
  2022-02-15 13:04 ` Andrey Grodzovsky
  1 sibling, 0 replies; 23+ messages in thread
From: Christian König @ 2022-02-15 12:26 UTC (permalink / raw)
  To: Jiawei Gu, amd-gfx, monk.liu, emily.deng, horace.chen, Andrey Grodzovsky

In general looks good to me, but Andrey is the maintainer for the GPU 
scheduler now.

Am 15.02.22 um 12:29 schrieb Jiawei Gu:
> Add device pointer so scheduler's printing can use
> DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
> scenario.
>
> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
> ---
>   drivers/gpu/drm/scheduler/sched_main.c | 9 +++++----
>   include/drm/gpu_scheduler.h            | 3 ++-
>   2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 3e0bbc797eaa..4404af323321 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(s_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   		} else
>   			drm_sched_job_done(s_job);
> @@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
>   			if (r == -ENOENT)
>   				drm_sched_job_done(sched_job);
>   			else if (r)
> -				DRM_ERROR("fence add callback failed (%d)\n",
> +				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
>   					  r);
>   			dma_fence_put(fence);
>   		} else {
> @@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   unsigned hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name)
> +		   atomic_t *score, const char *name, struct device *dev)
>   {
>   	int i, ret;
>   	sched->ops = ops;
> @@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	sched->timeout = timeout;
>   	sched->hang_limit = hang_limit;
>   	sched->score = score ? score : &sched->_score;
> +	sched->dev = dev;
>   	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
>   		drm_sched_rq_init(sched, &sched->sched_rq[i]);
>   
> @@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>   	if (IS_ERR(sched->thread)) {
>   		ret = PTR_ERR(sched->thread);
>   		sched->thread = NULL;
> -		DRM_ERROR("Failed to create scheduler for %s.\n", name);
> +		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
>   		return ret;
>   	}
>   
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index d18af49fd009..38a479879fdb 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
>   	atomic_t                        _score;
>   	bool				ready;
>   	bool				free_guilty;
> +	struct device			*dev;
>   };
>   
>   int drm_sched_init(struct drm_gpu_scheduler *sched,
>   		   const struct drm_sched_backend_ops *ops,
>   		   uint32_t hw_submission, unsigned hang_limit, long timeout,
> -		   atomic_t *score, const char *name);
> +		   atomic_t *score, const char *name, struct device *dev);
>   
>   void drm_sched_fini(struct drm_gpu_scheduler *sched);
>   int drm_sched_job_init(struct drm_sched_job *job,


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler
@ 2022-02-15 11:29 Jiawei Gu
  2022-02-15 12:26 ` Christian König
  2022-02-15 13:04 ` Andrey Grodzovsky
  0 siblings, 2 replies; 23+ messages in thread
From: Jiawei Gu @ 2022-02-15 11:29 UTC (permalink / raw)
  To: amd-gfx, christian.koenig, monk.liu, emily.deng, horace.chen; +Cc: Jiawei Gu

Add device pointer so scheduler's printing can use
DRM_DEV_ERROR() instead, which makes life easier under multiple GPU
scenario.

Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com>
---
 drivers/gpu/drm/scheduler/sched_main.c | 9 +++++----
 include/drm/gpu_scheduler.h            | 3 ++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 3e0bbc797eaa..4404af323321 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -489,7 +489,7 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery)
 			if (r == -ENOENT)
 				drm_sched_job_done(s_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 		} else
 			drm_sched_job_done(s_job);
@@ -815,7 +815,7 @@ static int drm_sched_main(void *param)
 			if (r == -ENOENT)
 				drm_sched_job_done(sched_job);
 			else if (r)
-				DRM_ERROR("fence add callback failed (%d)\n",
+				DRM_DEV_ERROR(sched->dev, "fence add callback failed (%d)\n",
 					  r);
 			dma_fence_put(fence);
 		} else {
@@ -846,7 +846,7 @@ static int drm_sched_main(void *param)
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   unsigned hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name)
+		   atomic_t *score, const char *name, struct device *dev)
 {
 	int i, ret;
 	sched->ops = ops;
@@ -855,6 +855,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->timeout = timeout;
 	sched->hang_limit = hang_limit;
 	sched->score = score ? score : &sched->_score;
+	sched->dev = dev;
 	for (i = DRM_SCHED_PRIORITY_MIN; i < DRM_SCHED_PRIORITY_COUNT; i++)
 		drm_sched_rq_init(sched, &sched->sched_rq[i]);
 
@@ -872,7 +873,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (IS_ERR(sched->thread)) {
 		ret = PTR_ERR(sched->thread);
 		sched->thread = NULL;
-		DRM_ERROR("Failed to create scheduler for %s.\n", name);
+		DRM_DEV_ERROR(sched->dev, "Failed to create scheduler for %s.\n", name);
 		return ret;
 	}
 
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index d18af49fd009..38a479879fdb 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -302,12 +302,13 @@ struct drm_gpu_scheduler {
 	atomic_t                        _score;
 	bool				ready;
 	bool				free_guilty;
+	struct device			*dev;
 };
 
 int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   const struct drm_sched_backend_ops *ops,
 		   uint32_t hw_submission, unsigned hang_limit, long timeout,
-		   atomic_t *score, const char *name);
+		   atomic_t *score, const char *name, struct device *dev);
 
 void drm_sched_fini(struct drm_gpu_scheduler *sched);
 int drm_sched_job_init(struct drm_sched_job *job,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2022-02-23 14:35 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-21  9:57 [PATCH] drm/sched: Add device pointer to drm_gpu_scheduler Jiawei Gu
2022-02-21 10:17 ` Christian König
2022-02-21 15:51 ` kernel test robot
2022-02-23  7:11   ` Christian König
2022-02-23  7:11     ` Christian König
2022-02-23  7:15     ` Gu, JiaWei (Will)
2022-02-23  7:41       ` Christian König
2022-02-23  7:41         ` Christian König
2022-02-23 14:35         ` Alex Deucher
2022-02-23 14:35           ` Alex Deucher
2022-02-23 14:35           ` Alex Deucher
2022-02-23  7:15     ` Gu, JiaWei
2022-02-21 16:32 ` kernel test robot
2022-02-21 17:12 ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-02-22 10:29 Jiawei Gu
2022-02-17 10:43 Jiawei Gu
2022-02-21  3:32 ` Gu, JiaWei (Will)
2022-02-21  5:22   ` Andrey Grodzovsky
2022-02-17 10:38 Jiawei Gu
2022-02-17 10:40 ` Christian König
2022-02-15 11:29 Jiawei Gu
2022-02-15 12:26 ` Christian König
2022-02-15 13:04 ` Andrey Grodzovsky

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.