[PATCH 17/19] drm/amdgpu: Remove hard-coded assumptions about compute pipes

Oded Gabbay oded.gabbay at gmail.com
Sun Aug 13 08:29:33 UTC 2017


On Sat, Aug 12, 2017 at 12:56 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote:
>
> Remove hard-coded assumption that the first compute pipe is
> reserved for amdgpu. Pipe 0 actually means pipe 0 now.
>
> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
> index 5936222..dfb8c74 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
> @@ -186,7 +186,7 @@ static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id,
>  {
>         struct amdgpu_device *adev = get_amdgpu_device(kgd);
>
> -       uint32_t mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
> +       uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
>         uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
>
>         lock_srbm(kgd, mec, pipe, queue_id, 0);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
> index 90271f6..0fccd30 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
> @@ -147,7 +147,7 @@ static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id,
>  {
>         struct amdgpu_device *adev = get_amdgpu_device(kgd);
>
> -       uint32_t mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
> +       uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
>         uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
>
>         lock_srbm(kgd, mec, pipe, queue_id, 0);
> @@ -216,7 +216,7 @@ static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
>         uint32_t mec;
>         uint32_t pipe;
>
> -       mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
> +       mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
>         pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
>
>         lock_srbm(kgd, mec, pipe, 0, 0);
> --
> 2.7.4
>

If I'm looking at amdgpu_gfx_compute_queue_acquire(), amdgpu takes the
first pipe, so won't this change collide with that code ?


More information about the amd-gfx mailing list