[PATCH 08/16] drm/amdgpu: initialize ttm for doorbells

Alex Deucher alexdeucher at gmail.com
Thu Mar 30 14:33:45 UTC 2023


On Wed, Mar 29, 2023 at 11:48 AM Shashank Sharma
<shashank.sharma at amd.com> wrote:
>
> From: Shashank Sharma <contactshashanksharma at gmail.com>
>
> This patch initialzes the ttm resource manager for doorbells.
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Christian Koenig <christian.koenig at amd.com>
> Signed-off-by: Shashank Sharma <shashank.sharma at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 6f61491ef3dd..203d77a20507 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1858,6 +1858,14 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
>         DRM_INFO("amdgpu: %uM of GTT memory ready.\n",
>                  (unsigned)(gtt_size / (1024 * 1024)));
>
> +       /* Initiailize doorbell pool on PCI BAR */
> +       r = amdgpu_ttm_init_on_chip(adev, AMDGPU_PL_DOORBELL,
> +                                   DIV_ROUND_UP(adev->doorbell.size, PAGE_SIZE));

In practice this would never be an issue since the PCI BAR is always
at least 2M, but I think we probably don't want to round up here?  I
guess large pages would be a problem, but so would going beyond the
BAR.

Alex

> +       if (r) {
> +               DRM_ERROR("Failed initializing doorbell heap. \n");
> +               return r;
> +       }
> +
>         /* Initialize preemptible memory pool */
>         r = amdgpu_preempt_mgr_init(adev);
>         if (r) {
> --
> 2.40.0
>


More information about the amd-gfx mailing list