[PATCH 3/8] lib/amdgpu: Add user mode queue support in ring context
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Jan 16 11:51:50 UTC 2025
Hi Sunil,
On 2025-01-16 at 12:22:06 +0530, Sunil Khatri wrote:
> Add the meta data to support the user mode command
> submission in the ring_context.
>
> User mode command submission methods needs these
> resources to be initialized and to create/destroy queues.
>
> Also once we have the queue created the queue id is
> used to submit the work load to the h/w.
>
> Signed-off-by: Sunil Khatri <sunil.khatri at amd.com>
> Reviewed-by: Vitaly Prosyak vitaly.prosyak at amd.com>
Why do you send it here with r-b already added?
Was is sent in some previous series and got r-b on mailinglist?
I do not see any info about this in cover letter.
Before merging please address build failures:
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1346611 for the overview.
build:tests-debian-meson has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/69437776):
../lib/amdgpu/amd_user_queue.c: In function ‘amdgpu_user_queue_destroy’:
../lib/amdgpu/amd_user_queue.c:183:6: error: implicit declaration of function ‘amdgpu_free_userqueue’; did you mean ‘amdgpu_open_devices’? [-Werror=implicit-function-declaration]
r = amdgpu_free_userqueue(device_handle, ctxt->queue_id);
^~~~~~~~~~~~~~~~~~~~~
amdgpu_open_devices
../lib/amdgpu/amd_user_queue.c:183:6: warning: nested extern declaration of ‘amdgpu_free_userqueue’ [-Wnested-externs]
../lib/amdgpu/amd_user_queue.c: In function ‘amdgpu_user_queue_create’:
../lib/amdgpu/amd_user_queue.c:387:7: error: implicit declaration of function ‘amdgpu_create_userqueue’; did you mean ‘amdgpu_cs_create_semaphore’? [-Werror=implicit-function-declaration]
r = amdgpu_create_userqueue(device_handle, AMDGPU_HW_IP_GFX,
^~~~~~~~~~~~~~~~~~~~~~~
amdgpu_cs_create_semaphore
../lib/amdgpu/amd_user_queue.c:387:7: warning: nested extern declaration of ‘amdgpu_create_userqueue’ [-Wnested-externs]
cc1: some warnings being treated as errors
ninja: build stopped: subcommand failed.
section_end:1737012393:step_script
section_start:1737012393:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1737012394:cleanup_file_variables
ERROR: Job failed: exit code 1
Regards,
Kamil
> ---
> lib/amdgpu/amd_ip_blocks.h | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
> diff --git a/lib/amdgpu/amd_ip_blocks.h b/lib/amdgpu/amd_ip_blocks.h
> index dc4d87151..9d110d402 100644
> --- a/lib/amdgpu/amd_ip_blocks.h
> +++ b/lib/amdgpu/amd_ip_blocks.h
> @@ -86,6 +86,14 @@ struct dynamic_test{
> bool support_sdma;
> };
>
> +struct amdgpu_userq_bo {
> + amdgpu_bo_handle handle;
> + amdgpu_va_handle va_handle;
> + uint64_t mc_addr;
> + uint64_t size;
> + void *ptr;
> +};
> +
> #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++)
>
> /* set during execution */
> @@ -141,6 +149,29 @@ struct amdgpu_ring_context {
> struct amdgpu_cs_ib_info ib_info; /* amdgpu_bo_list_create */
> struct amdgpu_cs_request ibs_request; /* amdgpu_cs_query_fence_status */
> struct amdgpu_cs_err_codes err_codes;
> +
> + /* User queue resources */
> + struct amdgpu_userq_bo queue;
> + struct amdgpu_userq_bo shadow;
> + struct amdgpu_userq_bo doorbell;
> + struct amdgpu_userq_bo rptr;
> + struct amdgpu_userq_bo wptr;
> + struct amdgpu_userq_bo csa;
> + struct amdgpu_userq_bo eop;
> +
> + uint32_t *queue_cpu;
> + uint64_t *wptr_cpu;
> + uint64_t *doorbell_cpu;
> +
> + uint32_t db_handle;
> + uint32_t queue_id;
> + uint32_t npkt;
> +
> + uint32_t timeline_syncobj_handle;
> + uint64_t point;
> + bool user_queue;
> +
> + struct drm_amdgpu_info_device dev_info;
> };
>
>
> --
> 2.34.1
>
More information about the igt-dev
mailing list