Re: [PATCH 04/19] drm/amdkfd: Fix allocated_queues bitmap initialization

2017-08-12 Thread Oded Gabbay
On Sat, Aug 12, 2017 at 12:56 AM, Felix Kuehling  wrote:
> Use shared_resources.queue_bitmap to determine the queues available
> for KFD in each pipe.
>
> Signed-off-by: Felix Kuehling 
> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 12 +---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index 42de22b..9d2796b 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -513,7 +513,7 @@ static int init_scheduler(struct device_queue_manager 
> *dqm)
>
>  static int initialize_nocpsch(struct device_queue_manager *dqm)
>  {
> -   int i;
> +   int pipe, queue;
>
> BUG_ON(!dqm);
>
> @@ -531,8 +531,14 @@ static int initialize_nocpsch(struct 
> device_queue_manager *dqm)
> return -ENOMEM;
> }
>
> -   for (i = 0; i < get_pipes_per_mec(dqm); i++)
> -   dqm->allocated_queues[i] = (1 << get_queues_per_pipe(dqm)) - 
> 1;
> +   for (pipe = 0; pipe < get_pipes_per_mec(dqm); pipe++) {
> +   int pipe_offset = pipe * get_queues_per_pipe(dqm);
> +
> +   for (queue = 0; queue < get_queues_per_pipe(dqm); queue++)
> +   if (test_bit(pipe_offset + queue,
> +dqm->dev->shared_resources.queue_bitmap))
> +   dqm->allocated_queues[pipe] |= 1 << queue;
> +   }
>
> dqm->vmid_bitmap = (1 << VMID_PER_DEVICE) - 1;
> dqm->sdma_bitmap = (1 << CIK_SDMA_QUEUES) - 1;
> --
> 2.7.4
>

This patch is:
Reviewed-by: Oded Gabbay 
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[PATCH 04/19] drm/amdkfd: Fix allocated_queues bitmap initialization

2017-08-11 Thread Felix Kuehling
Use shared_resources.queue_bitmap to determine the queues available
for KFD in each pipe.

Signed-off-by: Felix Kuehling 
---
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index 42de22b..9d2796b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -513,7 +513,7 @@ static int init_scheduler(struct device_queue_manager *dqm)
 
 static int initialize_nocpsch(struct device_queue_manager *dqm)
 {
-   int i;
+   int pipe, queue;
 
BUG_ON(!dqm);
 
@@ -531,8 +531,14 @@ static int initialize_nocpsch(struct device_queue_manager 
*dqm)
return -ENOMEM;
}
 
-   for (i = 0; i < get_pipes_per_mec(dqm); i++)
-   dqm->allocated_queues[i] = (1 << get_queues_per_pipe(dqm)) - 1;
+   for (pipe = 0; pipe < get_pipes_per_mec(dqm); pipe++) {
+   int pipe_offset = pipe * get_queues_per_pipe(dqm);
+
+   for (queue = 0; queue < get_queues_per_pipe(dqm); queue++)
+   if (test_bit(pipe_offset + queue,
+dqm->dev->shared_resources.queue_bitmap))
+   dqm->allocated_queues[pipe] |= 1 << queue;
+   }
 
dqm->vmid_bitmap = (1 << VMID_PER_DEVICE) - 1;
dqm->sdma_bitmap = (1 << CIK_SDMA_QUEUES) - 1;
-- 
2.7.4

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx