* [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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVbOkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBkr%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVbOkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBkr%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
>> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
>> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
>> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
>> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
>> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
>> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
>> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
>> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
>> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
>> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
>> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
>> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
>> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
>> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
>> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
>> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
>> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
>> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
>> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
>> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
>> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
>> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
>> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
>> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
>> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
>> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
>> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
>> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> >> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> >> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&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&data=04%7C01%7CChristian.Koenig%
> >> 40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82
> >> d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> >> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&
> >> ;sdata=8Kj1h9%2BCR%2B8nDeUXW%2B%2FQOFbiavK5oHons0mRPyHhq%2F0%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=KMrQ%2FsAoUV768eWdTF1FdmXo44kDPjWKnwoi4rvVnqs%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7
> >> C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7
> >> C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tLVb
> >> OkxAyxSD%2BVUHUmS6BT5RfOzO4q3sotVZ2YHGV9o%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8QLSr7JTjK87bBGwgOLxU6AU4bCeHoWX2zyx7SGYL7M%3D&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&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W9HKTScDzhoA1DClCigH2QQUgcIzLStBS%2Bx9ieYPbK4%3D&reserved=0
> >> git remote add linux-review https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FNJyugHVXenGmYqwgoK9kzKKjC3WGMia%2BNUduLNb0Pc%3D&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&data=04%7
> >> C01%7CChristian.Koenig%40amd.com%7C33c94d7ecffe465c671d08d9f5522651%7C
> >> 3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637810555454343325%7CUnknow
> >> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> >> JXVCI6Mn0%3D%7C3000&sdata=JTbXE%2Fv85yMSdX1zm4Em1aUZ32N29bf3FrllBk
> >> r%2BsMQ%3D&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.