All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-27 14:56 [RFC PATCH 1/2] drm/amdgpu: add wave limit functionality for gfx8,9 Nirmoy Das
@ 2021-01-27 14:56 ` Nirmoy Das
  0 siblings, 0 replies; 10+ messages in thread
From: Nirmoy Das @ 2021-01-27 14:56 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alan.Harrison, Felix.Kuehling, Nirmoy Das, ray.huang,
	Alexander.Deucher, Christian.Koenig

Enable gfx wave limiting for gfx jobs before pushing high priority
compute jobs so that high priority compute jobs more resources
to finish early.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 024d0a563a65..ee48989dfb4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && ring->funcs->emit_mem_sync)
 		ring->funcs->emit_mem_sync(ring);
 
+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, true);
+
 	if (ring->funcs->insert_start)
 		ring->funcs->insert_start(ring);
 
@@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	ring->current_ctx = fence_ctx;
 	if (vm && ring->funcs->emit_switch_buffer)
 		amdgpu_ring_emit_switch_buffer(ring);
+
+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, false);
+
 	amdgpu_ring_commit(ring);
 	return 0;
 }
-- 
2.30.0

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

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 13:41 [RFC PATCH v2 1/2] drm/amdgpu: add wave limit functionality for gfx8, 9 Nirmoy Das
@ 2021-01-28 13:41 ` Nirmoy Das
  0 siblings, 0 replies; 10+ messages in thread
From: Nirmoy Das @ 2021-01-28 13:41 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alan.Harrison, Felix.Kuehling, Nirmoy Das, ray.huang,
	Alexander.Deucher, Christian.Koenig

Enable gfx wave limiting for gfx jobs before pushing high priority
compute jobs so that high priority compute jobs gets more resources
to finish early.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 024d0a563a65..ee48989dfb4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && ring->funcs->emit_mem_sync)
 		ring->funcs->emit_mem_sync(ring);

+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, true);
+
 	if (ring->funcs->insert_start)
 		ring->funcs->insert_start(ring);

@@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	ring->current_ctx = fence_ctx;
 	if (vm && ring->funcs->emit_switch_buffer)
 		amdgpu_ring_emit_switch_buffer(ring);
+
+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, false);
+
 	amdgpu_ring_commit(ring);
 	return 0;
 }
--
2.30.0

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

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [RFC PATCH v3 1/2] drm/amdgpu: add wave limit functionality for gfx8, 9
@ 2021-01-28 14:35 Nirmoy Das
  2021-01-28 14:35 ` [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs Nirmoy Das
  0 siblings, 1 reply; 10+ messages in thread
From: Nirmoy Das @ 2021-01-28 14:35 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alan.Harrison, Felix.Kuehling, Nirmoy Das, ray.huang,
	Alexander.Deucher, Christian.Koenig

Wave limiting can be use to load balance high priority
compute jobs along with gfx jobs. When enabled, this will reserve
~75% of waves for compute jobs.

v3: Updated emit_frame_size.
v2: Use amdgpu_ring_emit_wreg() in gfx8.
    Updated comments.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h |  1 +
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c    | 20 +++++++++++++++++++-
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c    | 21 ++++++++++++++++++++-
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
index 7112137689db..220eec886f23 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
@@ -197,6 +197,7 @@ struct amdgpu_ring_funcs {
 	void (*soft_recovery)(struct amdgpu_ring *ring, unsigned vmid);
 	int (*preempt_ib)(struct amdgpu_ring *ring);
 	void (*emit_mem_sync)(struct amdgpu_ring *ring);
+	void (*emit_wave_limit)(struct amdgpu_ring *ring, bool enable);
 };

 struct amdgpu_ring {
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 37639214cbbb..9140e3f75a26 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -29,6 +29,7 @@

 #include "amdgpu.h"
 #include "amdgpu_gfx.h"
+#include "amdgpu_ring.h"
 #include "vi.h"
 #include "vi_structs.h"
 #include "vid.h"
@@ -6847,6 +6848,21 @@ static void gfx_v8_0_emit_mem_sync_compute(struct amdgpu_ring *ring)
 	amdgpu_ring_write(ring, 0x0000000A);	/* poll interval */
 }

+#define mmSPI_WCL_PIPE_PERCENT_GFX_DEFAULT	0x07ffffff
+static void gfx_v8_0_emit_wave_limit(struct amdgpu_ring *ring, bool enable)
+{
+	struct amdgpu_device *adev = ring->adev;
+	uint32_t val;
+
+
+	/* mmSPI_WCL_PIPE_PERCENT_GFX is 7 bit multiplier register to limit
+	 * number of gfx waves. Setting 5 bit will make sure gfx only gets
+	 * around 25% of gpu resources.
+	 */
+	val = enable ? 0x1f : mmSPI_WCL_PIPE_PERCENT_GFX_DEFAULT;
+	amdgpu_ring_emit_wreg(ring, mmSPI_WCL_PIPE_PERCENT_GFX, val);
+}
+
 static const struct amd_ip_funcs gfx_v8_0_ip_funcs = {
 	.name = "gfx_v8_0",
 	.early_init = gfx_v8_0_early_init,
@@ -6930,7 +6946,8 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = {
 		7 + /* gfx_v8_0_ring_emit_pipeline_sync */
 		VI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v8_0_ring_emit_vm_flush */
 		7 + 7 + 7 + /* gfx_v8_0_ring_emit_fence_compute x3 for user fence, vm fence */
-		7, /* gfx_v8_0_emit_mem_sync_compute */
+		7 + /* gfx_v8_0_emit_mem_sync_compute */
+		5, /* gfx_v8_0_emit_wave_limit for updating mmSPI_WCL_PIPE_PERCENT_GFX register */
 	.emit_ib_size =	7, /* gfx_v8_0_ring_emit_ib_compute */
 	.emit_ib = gfx_v8_0_ring_emit_ib_compute,
 	.emit_fence = gfx_v8_0_ring_emit_fence_compute,
@@ -6944,6 +6961,7 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = {
 	.pad_ib = amdgpu_ring_generic_pad_ib,
 	.emit_wreg = gfx_v8_0_ring_emit_wreg,
 	.emit_mem_sync = gfx_v8_0_emit_mem_sync_compute,
+	.emit_wave_limit = gfx_v8_0_emit_wave_limit,
 };

 static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_kiq = {
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index a896e3d0fcf8..3022aff50ebc 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -52,6 +52,7 @@

 #include "asic_reg/pwr/pwr_10_0_offset.h"
 #include "asic_reg/pwr/pwr_10_0_sh_mask.h"
+#include "asic_reg/gc/gc_9_0_default.h"

 #define GFX9_NUM_GFX_RINGS     1
 #define GFX9_MEC_HPD_SIZE 4096
@@ -6670,6 +6671,22 @@ static void gfx_v9_0_emit_mem_sync(struct amdgpu_ring *ring)
 	amdgpu_ring_write(ring, 0x0000000A); /* POLL_INTERVAL */
 }

+static void gfx_v9_0_emit_wave_limit(struct amdgpu_ring *ring, bool enable)
+{
+	struct amdgpu_device *adev = ring->adev;
+	uint32_t val;
+
+
+	/* mmSPI_WCL_PIPE_PERCENT_GFX is 7 bit multiplier register to limit
+	 * number of gfx waves. Setting 5 bit will make sure gfx only gets
+	 * around 25% of gpu resources.
+	 */
+	val = enable ? 0x1f : mmSPI_WCL_PIPE_PERCENT_GFX_DEFAULT;
+	amdgpu_ring_emit_wreg(ring,
+			      SOC15_REG_OFFSET(GC, 0, mmSPI_WCL_PIPE_PERCENT_GFX),
+			      val);
+}
+
 static const struct amd_ip_funcs gfx_v9_0_ip_funcs = {
 	.name = "gfx_v9_0",
 	.early_init = gfx_v9_0_early_init,
@@ -6759,7 +6776,8 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
 		SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 7 +
 		2 + /* gfx_v9_0_ring_emit_vm_flush */
 		8 + 8 + 8 + /* gfx_v9_0_ring_emit_fence x3 for user fence, vm fence */
-		7, /* gfx_v9_0_emit_mem_sync */
+		7 + /* gfx_v9_0_emit_mem_sync */
+		5, /* gfx_v9_0_emit_wave_limit for updating mmSPI_WCL_PIPE_PERCENT_GFX register */
 	.emit_ib_size =	7, /* gfx_v9_0_ring_emit_ib_compute */
 	.emit_ib = gfx_v9_0_ring_emit_ib_compute,
 	.emit_fence = gfx_v9_0_ring_emit_fence,
@@ -6775,6 +6793,7 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
 	.emit_reg_wait = gfx_v9_0_ring_emit_reg_wait,
 	.emit_reg_write_reg_wait = gfx_v9_0_ring_emit_reg_write_reg_wait,
 	.emit_mem_sync = gfx_v9_0_emit_mem_sync,
+	.emit_wave_limit = gfx_v9_0_emit_wave_limit,
 };

 static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_kiq = {
--
2.30.0

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

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 14:35 [RFC PATCH v3 1/2] drm/amdgpu: add wave limit functionality for gfx8, 9 Nirmoy Das
@ 2021-01-28 14:35 ` Nirmoy Das
  2021-01-28 14:49   ` Christian König
  0 siblings, 1 reply; 10+ messages in thread
From: Nirmoy Das @ 2021-01-28 14:35 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alan.Harrison, Felix.Kuehling, Nirmoy Das, ray.huang,
	Alexander.Deucher, Christian.Koenig

Enable gfx wave limiting for gfx jobs before pushing high priority
compute jobs so that high priority compute jobs gets more resources
to finish early.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 024d0a563a65..ee48989dfb4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && ring->funcs->emit_mem_sync)
 		ring->funcs->emit_mem_sync(ring);
 
+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, true);
+
 	if (ring->funcs->insert_start)
 		ring->funcs->insert_start(ring);
 
@@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	ring->current_ctx = fence_ctx;
 	if (vm && ring->funcs->emit_switch_buffer)
 		amdgpu_ring_emit_switch_buffer(ring);
+
+	if (ring->funcs->emit_wave_limit && job &&
+	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
+		ring->funcs->emit_wave_limit(ring, false);
+
 	amdgpu_ring_commit(ring);
 	return 0;
 }
-- 
2.30.0

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

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 14:35 ` [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs Nirmoy Das
@ 2021-01-28 14:49   ` Christian König
  2021-01-28 15:21     ` Nirmoy
  0 siblings, 1 reply; 10+ messages in thread
From: Christian König @ 2021-01-28 14:49 UTC (permalink / raw)
  To: Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang,
	Christian.Koenig

Am 28.01.21 um 15:35 schrieb Nirmoy Das:
> Enable gfx wave limiting for gfx jobs before pushing high priority
> compute jobs so that high priority compute jobs gets more resources
> to finish early.

The problem here is what happens if you have multiple high priority jobs 
running at the same time?

Christian

>
> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> index 024d0a563a65..ee48989dfb4c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
>   	if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && ring->funcs->emit_mem_sync)
>   		ring->funcs->emit_mem_sync(ring);
>   
> +	if (ring->funcs->emit_wave_limit && job &&
> +	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
> +		ring->funcs->emit_wave_limit(ring, true);
> +
>   	if (ring->funcs->insert_start)
>   		ring->funcs->insert_start(ring);
>   
> @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
>   	ring->current_ctx = fence_ctx;
>   	if (vm && ring->funcs->emit_switch_buffer)
>   		amdgpu_ring_emit_switch_buffer(ring);
> +
> +	if (ring->funcs->emit_wave_limit && job &&
> +	    job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
> +		ring->funcs->emit_wave_limit(ring, false);
> +
>   	amdgpu_ring_commit(ring);
>   	return 0;
>   }

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 14:49   ` Christian König
@ 2021-01-28 15:21     ` Nirmoy
  2021-01-28 15:25       ` Christian König
  0 siblings, 1 reply; 10+ messages in thread
From: Nirmoy @ 2021-01-28 15:21 UTC (permalink / raw)
  To: christian.koenig, Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang


On 1/28/21 3:49 PM, Christian König wrote:
> Am 28.01.21 um 15:35 schrieb Nirmoy Das:
>> Enable gfx wave limiting for gfx jobs before pushing high priority
>> compute jobs so that high priority compute jobs gets more resources
>> to finish early.
>
> The problem here is what happens if you have multiple high priority 
> jobs running at the same time?


AFAIU, in that case quantum duration will come into effect. The queue 
arbiter will switch

to next high priority active queue once quantum duration expires. This 
should be similar to what

we already have, multiple normal priority jobs sharing GPU resources 
based on CP_HQD_QUANTUM.

QUEUE_DURATION register value.


Regards,

Nirmoy


>
> Christian
>
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>> index 024d0a563a65..ee48989dfb4c 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, 
>> unsigned num_ibs,
>>       if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && 
>> ring->funcs->emit_mem_sync)
>>           ring->funcs->emit_mem_sync(ring);
>>   +    if (ring->funcs->emit_wave_limit && job &&
>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>> +        ring->funcs->emit_wave_limit(ring, true);
>> +
>>       if (ring->funcs->insert_start)
>>           ring->funcs->insert_start(ring);
>>   @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>> *ring, unsigned num_ibs,
>>       ring->current_ctx = fence_ctx;
>>       if (vm && ring->funcs->emit_switch_buffer)
>>           amdgpu_ring_emit_switch_buffer(ring);
>> +
>> +    if (ring->funcs->emit_wave_limit && job &&
>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>> +        ring->funcs->emit_wave_limit(ring, false);
>> +
>>       amdgpu_ring_commit(ring);
>>       return 0;
>>   }
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C74280be4658d429c0cd808d8c39be149%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474421561173374%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TA2uh40U5C%2FhrvshW3qq85BbubKl%2FLhSpC725Xir9WQ%3D&amp;reserved=0 
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 15:21     ` Nirmoy
@ 2021-01-28 15:25       ` Christian König
  2021-01-28 16:01         ` Nirmoy
  0 siblings, 1 reply; 10+ messages in thread
From: Christian König @ 2021-01-28 15:25 UTC (permalink / raw)
  To: Nirmoy, christian.koenig, Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang

Am 28.01.21 um 16:21 schrieb Nirmoy:
>
> On 1/28/21 3:49 PM, Christian König wrote:
>> Am 28.01.21 um 15:35 schrieb Nirmoy Das:
>>> Enable gfx wave limiting for gfx jobs before pushing high priority
>>> compute jobs so that high priority compute jobs gets more resources
>>> to finish early.
>>
>> The problem here is what happens if you have multiple high priority 
>> jobs running at the same time?
>
>
> AFAIU, in that case quantum duration will come into effect. The queue 
> arbiter will switch
>
> to next high priority active queue once quantum duration expires. This 
> should be similar to what
>
> we already have, multiple normal priority jobs sharing GPU resources 
> based on CP_HQD_QUANTUM.
>
> QUEUE_DURATION register value.

Yeah, but when the first high priority job completes it will reset 
mmSPI_WCL_PIPE_PERCENT_GFX back to the default value.

Have you considered that?

Thanks,
Christian.

>
>
> Regards,
>
> Nirmoy
>
>
>>
>> Christian
>>
>>>
>>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>>>   1 file changed, 9 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>> index 024d0a563a65..ee48989dfb4c 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>> *ring, unsigned num_ibs,
>>>       if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && 
>>> ring->funcs->emit_mem_sync)
>>>           ring->funcs->emit_mem_sync(ring);
>>>   +    if (ring->funcs->emit_wave_limit && job &&
>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>> +        ring->funcs->emit_wave_limit(ring, true);
>>> +
>>>       if (ring->funcs->insert_start)
>>>           ring->funcs->insert_start(ring);
>>>   @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>> *ring, unsigned num_ibs,
>>>       ring->current_ctx = fence_ctx;
>>>       if (vm && ring->funcs->emit_switch_buffer)
>>>           amdgpu_ring_emit_switch_buffer(ring);
>>> +
>>> +    if (ring->funcs->emit_wave_limit && job &&
>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>> +        ring->funcs->emit_wave_limit(ring, false);
>>> +
>>>       amdgpu_ring_commit(ring);
>>>       return 0;
>>>   }
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C74280be4658d429c0cd808d8c39be149%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474421561173374%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TA2uh40U5C%2FhrvshW3qq85BbubKl%2FLhSpC725Xir9WQ%3D&amp;reserved=0 
>>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 15:25       ` Christian König
@ 2021-01-28 16:01         ` Nirmoy
  2021-01-28 16:14           ` Christian König
  0 siblings, 1 reply; 10+ messages in thread
From: Nirmoy @ 2021-01-28 16:01 UTC (permalink / raw)
  To: christian.koenig, Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang

[-- Attachment #1: Type: text/plain, Size: 4538 bytes --]


On 1/28/21 4:25 PM, Christian König wrote:
> Am 28.01.21 um 16:21 schrieb Nirmoy:
>>
>> On 1/28/21 3:49 PM, Christian König wrote:
>>> Am 28.01.21 um 15:35 schrieb Nirmoy Das:
>>>> Enable gfx wave limiting for gfx jobs before pushing high priority
>>>> compute jobs so that high priority compute jobs gets more resources
>>>> to finish early.
>>>
>>> The problem here is what happens if you have multiple high priority 
>>> jobs running at the same time?
>>
>>
>> AFAIU, in that case quantum duration will come into effect. The queue 
>> arbiter will switch
>>
>> to next high priority active queue once quantum duration expires. 
>> This should be similar to what
>>
>> we already have, multiple normal priority jobs sharing GPU resources 
>> based on CP_HQD_QUANTUM.
>>
>> QUEUE_DURATION register value.
>
> Yeah, but when the first high priority job completes it will reset 
> mmSPI_WCL_PIPE_PERCENT_GFX back to the default value.
>
> Have you considered that?


Yes I need bit of clarity here. Isn't one frame(...pm4(wave_limit), 
pm4(IBs), pm4(restore_wave_limit), ..)

executes together as one unit? If that is the case then the next high 
prio compute job will set the wave limit

again and will be applied for its dispatch call.


I guess that is not the case because you asked this question. Do you 
think we should have only one high priority

queue then?


I tried to test it by running two instances of same vulkan test 
application. I can't trace

two applications together using RGP. From the trace of one 
application(along with other running together),

I didn't see any throttling down of high priority compute job(yellow bars).


Let me know what do you think. I will work with Alan to change the test 
application so that we can verify this

using multiple high priority context.


Regards,

Nirmoy

>
> Thanks,
> Christian.
>
>>
>>
>> Regards,
>>
>> Nirmoy
>>
>>
>>>
>>> Christian
>>>
>>>>
>>>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>>>>   1 file changed, 9 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>> index 024d0a563a65..ee48989dfb4c 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>> *ring, unsigned num_ibs,
>>>>       if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && 
>>>> ring->funcs->emit_mem_sync)
>>>>           ring->funcs->emit_mem_sync(ring);
>>>>   +    if (ring->funcs->emit_wave_limit && job &&
>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>> +        ring->funcs->emit_wave_limit(ring, true);
>>>> +
>>>>       if (ring->funcs->insert_start)
>>>>           ring->funcs->insert_start(ring);
>>>>   @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>> *ring, unsigned num_ibs,
>>>>       ring->current_ctx = fence_ctx;
>>>>       if (vm && ring->funcs->emit_switch_buffer)
>>>>           amdgpu_ring_emit_switch_buffer(ring);
>>>> +
>>>> +    if (ring->funcs->emit_wave_limit && job &&
>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>> +        ring->funcs->emit_wave_limit(ring, false);
>>>> +
>>>>       amdgpu_ring_commit(ring);
>>>>       return 0;
>>>>   }
>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx@lists.freedesktop.org
>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>
>

[-- Attachment #2: multiple_high_prio_jobs.png --]
[-- Type: image/png, Size: 86069 bytes --]

[-- Attachment #3: Type: text/plain, Size: 154 bytes --]

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 16:01         ` Nirmoy
@ 2021-01-28 16:14           ` Christian König
  2021-01-28 16:54             ` Nirmoy
  0 siblings, 1 reply; 10+ messages in thread
From: Christian König @ 2021-01-28 16:14 UTC (permalink / raw)
  To: Nirmoy, Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang

Am 28.01.21 um 17:01 schrieb Nirmoy:
>
> On 1/28/21 4:25 PM, Christian König wrote:
>> Am 28.01.21 um 16:21 schrieb Nirmoy:
>>>
>>> On 1/28/21 3:49 PM, Christian König wrote:
>>>> Am 28.01.21 um 15:35 schrieb Nirmoy Das:
>>>>> Enable gfx wave limiting for gfx jobs before pushing high priority
>>>>> compute jobs so that high priority compute jobs gets more resources
>>>>> to finish early.
>>>>
>>>> The problem here is what happens if you have multiple high priority 
>>>> jobs running at the same time?
>>>
>>>
>>> AFAIU, in that case quantum duration will come into effect. The 
>>> queue arbiter will switch
>>>
>>> to next high priority active queue once quantum duration expires. 
>>> This should be similar to what
>>>
>>> we already have, multiple normal priority jobs sharing GPU resources 
>>> based on CP_HQD_QUANTUM.
>>>
>>> QUEUE_DURATION register value.
>>
>> Yeah, but when the first high priority job completes it will reset 
>> mmSPI_WCL_PIPE_PERCENT_GFX back to the default value.
>>
>> Have you considered that?
>
>
> Yes I need bit of clarity here. Isn't one frame(...pm4(wave_limit), 
> pm4(IBs), pm4(restore_wave_limit), ..)
>
> executes together as one unit? If that is the case then the next high 
> prio compute job will set the wave limit
>
> again and will be applied for its dispatch call.

Yeah, that is correct. But the problem is somewhere else.

>
>
> I guess that is not the case because you asked this question. Do you 
> think we should have only one high priority
>
> queue then?

Yes exactly that. IIRC we currently have 4 low priority and 4 high 
priority queues.

The problem is those 4 high priority queues. If we only use 1 then we 
won't run into this as far as I can see.

Regards,
Christian.

>
>
> I tried to test it by running two instances of same vulkan test 
> application. I can't trace
>
> two applications together using RGP. From the trace of one 
> application(along with other running together),
>
> I didn't see any throttling down of high priority compute job(yellow 
> bars).
>
>
> Let me know what do you think. I will work with Alan to change the 
> test application so that we can verify this
>
> using multiple high priority context.
>
>
> Regards,
>
> Nirmoy
>
>>
>> Thanks,
>> Christian.
>>
>>>
>>>
>>> Regards,
>>>
>>> Nirmoy
>>>
>>>
>>>>
>>>> Christian
>>>>
>>>>>
>>>>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>>>>> ---
>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>>>>>   1 file changed, 9 insertions(+)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>> index 024d0a563a65..ee48989dfb4c 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>>> *ring, unsigned num_ibs,
>>>>>       if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && 
>>>>> ring->funcs->emit_mem_sync)
>>>>>           ring->funcs->emit_mem_sync(ring);
>>>>>   +    if (ring->funcs->emit_wave_limit && job &&
>>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>>> +        ring->funcs->emit_wave_limit(ring, true);
>>>>> +
>>>>>       if (ring->funcs->insert_start)
>>>>>           ring->funcs->insert_start(ring);
>>>>>   @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>>> *ring, unsigned num_ibs,
>>>>>       ring->current_ctx = fence_ctx;
>>>>>       if (vm && ring->funcs->emit_switch_buffer)
>>>>>           amdgpu_ring_emit_switch_buffer(ring);
>>>>> +
>>>>> +    if (ring->funcs->emit_wave_limit && job &&
>>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>>> +        ring->funcs->emit_wave_limit(ring, false);
>>>>> +
>>>>>       amdgpu_ring_commit(ring);
>>>>>       return 0;
>>>>>   }
>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx@lists.freedesktop.org
>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>>
>>

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs
  2021-01-28 16:14           ` Christian König
@ 2021-01-28 16:54             ` Nirmoy
  0 siblings, 0 replies; 10+ messages in thread
From: Nirmoy @ 2021-01-28 16:54 UTC (permalink / raw)
  To: Christian König, Nirmoy Das, amd-gfx
  Cc: Alan.Harrison, Alexander.Deucher, Felix.Kuehling, ray.huang


On 1/28/21 5:14 PM, Christian König wrote:
> Am 28.01.21 um 17:01 schrieb Nirmoy:
>>
>> On 1/28/21 4:25 PM, Christian König wrote:
>>> Am 28.01.21 um 16:21 schrieb Nirmoy:
>>>>
>>>> On 1/28/21 3:49 PM, Christian König wrote:
>>>>> Am 28.01.21 um 15:35 schrieb Nirmoy Das:
>>>>>> Enable gfx wave limiting for gfx jobs before pushing high priority
>>>>>> compute jobs so that high priority compute jobs gets more resources
>>>>>> to finish early.
>>>>>
>>>>> The problem here is what happens if you have multiple high 
>>>>> priority jobs running at the same time?
>>>>
>>>>
>>>> AFAIU, in that case quantum duration will come into effect. The 
>>>> queue arbiter will switch
>>>>
>>>> to next high priority active queue once quantum duration expires. 
>>>> This should be similar to what
>>>>
>>>> we already have, multiple normal priority jobs sharing GPU 
>>>> resources based on CP_HQD_QUANTUM.
>>>>
>>>> QUEUE_DURATION register value.
>>>
>>> Yeah, but when the first high priority job completes it will reset 
>>> mmSPI_WCL_PIPE_PERCENT_GFX back to the default value.
>>>
>>> Have you considered that?
>>
>>
>> Yes I need bit of clarity here. Isn't one frame(...pm4(wave_limit), 
>> pm4(IBs), pm4(restore_wave_limit), ..)
>>
>> executes together as one unit? If that is the case then the next high 
>> prio compute job will set the wave limit
>>
>> again and will be applied for its dispatch call.
>
> Yeah, that is correct. But the problem is somewhere else.
>
>>
>>
>> I guess that is not the case because you asked this question. Do you 
>> think we should have only one high priority
>>
>> queue then?
>
> Yes exactly that. IIRC we currently have 4 low priority and 4 high 
> priority queues.
>
> The problem is those 4 high priority queues. If we only use 1 then we 
> won't run into this as far as I can see.
>

I see. I will add another patch to limit high prio queues to one.


Regards,

Nirmoy


> Regards,
> Christian.
>
>>
>>
>> I tried to test it by running two instances of same vulkan test 
>> application. I can't trace
>>
>> two applications together using RGP. From the trace of one 
>> application(along with other running together),
>>
>> I didn't see any throttling down of high priority compute job(yellow 
>> bars).
>>
>>
>> Let me know what do you think. I will work with Alan to change the 
>> test application so that we can verify this
>>
>> using multiple high priority context.
>>
>>
>> Regards,
>>
>> Nirmoy
>>
>>>
>>> Thanks,
>>> Christian.
>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Nirmoy
>>>>
>>>>
>>>>>
>>>>> Christian
>>>>>
>>>>>>
>>>>>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>>>>>> ---
>>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +++++++++
>>>>>>   1 file changed, 9 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
>>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>>> index 024d0a563a65..ee48989dfb4c 100644
>>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
>>>>>> @@ -195,6 +195,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>>>> *ring, unsigned num_ibs,
>>>>>>       if ((ib->flags & AMDGPU_IB_FLAG_EMIT_MEM_SYNC) && 
>>>>>> ring->funcs->emit_mem_sync)
>>>>>>           ring->funcs->emit_mem_sync(ring);
>>>>>>   +    if (ring->funcs->emit_wave_limit && job &&
>>>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>>>> +        ring->funcs->emit_wave_limit(ring, true);
>>>>>> +
>>>>>>       if (ring->funcs->insert_start)
>>>>>>           ring->funcs->insert_start(ring);
>>>>>>   @@ -295,6 +299,11 @@ int amdgpu_ib_schedule(struct amdgpu_ring 
>>>>>> *ring, unsigned num_ibs,
>>>>>>       ring->current_ctx = fence_ctx;
>>>>>>       if (vm && ring->funcs->emit_switch_buffer)
>>>>>>           amdgpu_ring_emit_switch_buffer(ring);
>>>>>> +
>>>>>> +    if (ring->funcs->emit_wave_limit && job &&
>>>>>> +        job->base.s_priority >= DRM_SCHED_PRIORITY_HIGH)
>>>>>> +        ring->funcs->emit_wave_limit(ring, false);
>>>>>> +
>>>>>>       amdgpu_ring_commit(ring);
>>>>>>       return 0;
>>>>>>   }
>>>>>
>>>>> _______________________________________________
>>>>> amd-gfx mailing list
>>>>> amd-gfx@lists.freedesktop.org
>>>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Cnirmoy.das%40amd.com%7C67e903357ee247f9ceb008d8c3a0efdf%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637474443287007930%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=EyouSUvaKjQIIWeKDilVra73iL1eb0rpnaUCDAIDvXA%3D&amp;reserved=0 
>>>>
>>>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-01-28 16:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-28 14:35 [RFC PATCH v3 1/2] drm/amdgpu: add wave limit functionality for gfx8, 9 Nirmoy Das
2021-01-28 14:35 ` [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs Nirmoy Das
2021-01-28 14:49   ` Christian König
2021-01-28 15:21     ` Nirmoy
2021-01-28 15:25       ` Christian König
2021-01-28 16:01         ` Nirmoy
2021-01-28 16:14           ` Christian König
2021-01-28 16:54             ` Nirmoy
  -- strict thread matches above, loose matches on Subject: below --
2021-01-28 13:41 [RFC PATCH v2 1/2] drm/amdgpu: add wave limit functionality for gfx8, 9 Nirmoy Das
2021-01-28 13:41 ` [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs Nirmoy Das
2021-01-27 14:56 [RFC PATCH 1/2] drm/amdgpu: add wave limit functionality for gfx8,9 Nirmoy Das
2021-01-27 14:56 ` [RFC PATCH 2/2] drm/amdgpu: enable gfx wave limiting for high priority compute jobs Nirmoy Das

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.