* [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs @ 2018-11-07 17:29 Alex Deucher [not found] ` <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 11+ messages in thread From: Alex Deucher @ 2018-11-07 17:29 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher Use the paging queue for buffer functions to avoid contention with the other queues. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> --- drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index e39a09eb0fa1..4b5b47dd2f4c 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) u32 rb_cntl, ib_cntl; int i; + if ((adev->mman.buffer_funcs_ring == sdma0) || + (adev->mman.buffer_funcs_ring == sdma1)) + amdgpu_ttm_set_buffer_funcs_status(adev, false); + for (i = 0; i < adev->sdma.num_instances; i++) { rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) r = amdgpu_ring_test_helper(page); if (r) return r; + + if (adev->mman.buffer_funcs_ring == page) + amdgpu_ttm_set_buffer_funcs_status(adev, true); } if (adev->mman.buffer_funcs_ring == ring) @@ -2054,7 +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) { adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; + if (adev->sdma.has_page_queue) + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; + else + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; } static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = { -- 2.13.6 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 11+ messages in thread
[parent not found: <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org>]
* [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 for buffer funcs [not found] ` <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> @ 2018-11-07 17:29 ` Alex Deucher [not found] ` <20181107172949.27158-2-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-08 2:05 ` [PATCH 1/2] drm/amdgpu/sdma4: use paging queue " Zhang, Jerry(Junwei) 2018-11-08 8:01 ` Christian König 2 siblings, 1 reply; 11+ messages in thread From: Alex Deucher @ 2018-11-07 17:29 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher Use page queue 0 rather than 1 to avoid contention with GPUVM updates using page queue 0. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> --- drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index 4b5b47dd2f4c..44c16a5c5428 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c @@ -2062,7 +2062,8 @@ static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) { adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; if (adev->sdma.has_page_queue) - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; + /* use page queue 1 since page queue 0 will be used for VM updates */ + adev->mman.buffer_funcs_ring = &adev->sdma.instance[1].page; else adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; } -- 2.13.6 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 11+ messages in thread
[parent not found: <20181107172949.27158-2-alexander.deucher-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 for buffer funcs [not found] ` <20181107172949.27158-2-alexander.deucher-5C7GfCeVMHo@public.gmane.org> @ 2018-11-08 2:11 ` Zhang, Jerry(Junwei) [not found] ` <9da6b213-e2d2-c0eb-6f6d-8ce39bcc2152-5C7GfCeVMHo@public.gmane.org> 2018-11-08 8:00 ` Christian König 1 sibling, 1 reply; 11+ messages in thread From: Zhang, Jerry(Junwei) @ 2018-11-08 2:11 UTC (permalink / raw) To: Alex Deucher, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher On 11/8/18 1:29 AM, Alex Deucher wrote: > Use page queue 0 rather than 1 to avoid contention with GPUVM > updates using page queue 0. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> A little confuse, I thought we were going to use page queue(in any instance) for PT update, gfx ring for general sdma jobs. Any missing? Regards, Jerry > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index 4b5b47dd2f4c..44c16a5c5428 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -2062,7 +2062,8 @@ static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > { > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > if (adev->sdma.has_page_queue) > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > + /* use page queue 1 since page queue 0 will be used for VM updates */ > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[1].page; > else > adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > } _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <9da6b213-e2d2-c0eb-6f6d-8ce39bcc2152-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 for buffer funcs [not found] ` <9da6b213-e2d2-c0eb-6f6d-8ce39bcc2152-5C7GfCeVMHo@public.gmane.org> @ 2018-11-08 2:58 ` Alex Deucher 0 siblings, 0 replies; 11+ messages in thread From: Alex Deucher @ 2018-11-08 2:58 UTC (permalink / raw) To: Junwei Zhang; +Cc: Deucher, Alexander, amd-gfx list On Wed, Nov 7, 2018 at 9:11 PM Zhang, Jerry(Junwei) <Jerry.Zhang@amd.com> wrote: > > On 11/8/18 1:29 AM, Alex Deucher wrote: > > Use page queue 0 rather than 1 to avoid contention with GPUVM > > updates using page queue 0. > > > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > > A little confuse, I thought we were going to use page queue(in any > instance) for PT update, > gfx ring for general sdma jobs. > > Any missing? Yes, you are right, I mis-read the code. I'll drop this patch. Alex > > Regards, > Jerry > > --- > > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > index 4b5b47dd2f4c..44c16a5c5428 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > @@ -2062,7 +2062,8 @@ static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > > { > > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > > if (adev->sdma.has_page_queue) > > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > > + /* use page queue 1 since page queue 0 will be used for VM updates */ > > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[1].page; > > else > > adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > > } > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 for buffer funcs [not found] ` <20181107172949.27158-2-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-08 2:11 ` Zhang, Jerry(Junwei) @ 2018-11-08 8:00 ` Christian König 1 sibling, 0 replies; 11+ messages in thread From: Christian König @ 2018-11-08 8:00 UTC (permalink / raw) To: Alex Deucher, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher Am 07.11.18 um 18:29 schrieb Alex Deucher: > Use page queue 0 rather than 1 to avoid contention with GPUVM > updates using page queue 0. Well NAK for two reasons: 1. VM updates are currently balanced between page queue 0 and 1. 2. I want to keep one paging queue reserved for fault processing in the long term. Christian. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index 4b5b47dd2f4c..44c16a5c5428 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -2062,7 +2062,8 @@ static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > { > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > if (adev->sdma.has_page_queue) > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > + /* use page queue 1 since page queue 0 will be used for VM updates */ > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[1].page; > else > adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > } _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs [not found] ` <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-07 17:29 ` [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 " Alex Deucher @ 2018-11-08 2:05 ` Zhang, Jerry(Junwei) [not found] ` <19502b5a-8508-3b59-b50e-44de4ade535b-5C7GfCeVMHo@public.gmane.org> 2018-11-08 8:01 ` Christian König 2 siblings, 1 reply; 11+ messages in thread From: Zhang, Jerry(Junwei) @ 2018-11-08 2:05 UTC (permalink / raw) To: Alex Deucher, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher On 11/8/18 1:29 AM, Alex Deucher wrote: > Use the paging queue for buffer functions to avoid contention > with the other queues. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index e39a09eb0fa1..4b5b47dd2f4c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) > u32 rb_cntl, ib_cntl; > int i; > > + if ((adev->mman.buffer_funcs_ring == sdma0) || > + (adev->mman.buffer_funcs_ring == sdma1)) > + amdgpu_ttm_set_buffer_funcs_status(adev, false); > + > for (i = 0; i < adev->sdma.num_instances; i++) { > rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, > @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) > r = amdgpu_ring_test_helper(page); > if (r) > return r; > + > + if (adev->mman.buffer_funcs_ring == page) > + amdgpu_ttm_set_buffer_funcs_status(adev, true); > } > > if (adev->mman.buffer_funcs_ring == ring) > @@ -2054,7 +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { > static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > { > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > + if (adev->sdma.has_page_queue) > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > + else > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > } > > static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = { _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <19502b5a-8508-3b59-b50e-44de4ade535b-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs [not found] ` <19502b5a-8508-3b59-b50e-44de4ade535b-5C7GfCeVMHo@public.gmane.org> @ 2018-11-08 2:59 ` Alex Deucher 2018-11-08 7:44 ` Zhang, Jerry(Junwei) 0 siblings, 1 reply; 11+ messages in thread From: Alex Deucher @ 2018-11-08 2:59 UTC (permalink / raw) To: Junwei Zhang; +Cc: Deucher, Alexander, amd-gfx list On Wed, Nov 7, 2018 at 9:05 PM Zhang, Jerry(Junwei) <Jerry.Zhang@amd.com> wrote: > > On 11/8/18 1:29 AM, Alex Deucher wrote: > > Use the paging queue for buffer functions to avoid contention > > with the other queues. > > > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> Can someone with a vega10 test this? Alex > > > --- > > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- > > 1 file changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > index e39a09eb0fa1..4b5b47dd2f4c 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > > @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) > > u32 rb_cntl, ib_cntl; > > int i; > > > > + if ((adev->mman.buffer_funcs_ring == sdma0) || > > + (adev->mman.buffer_funcs_ring == sdma1)) > > + amdgpu_ttm_set_buffer_funcs_status(adev, false); > > + > > for (i = 0; i < adev->sdma.num_instances; i++) { > > rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); > > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, > > @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) > > r = amdgpu_ring_test_helper(page); > > if (r) > > return r; > > + > > + if (adev->mman.buffer_funcs_ring == page) > > + amdgpu_ttm_set_buffer_funcs_status(adev, true); > > } > > > > if (adev->mman.buffer_funcs_ring == ring) > > @@ -2054,7 +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { > > static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > > { > > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > > + if (adev->sdma.has_page_queue) > > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > > + else > > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > > } > > > > static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = { > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs 2018-11-08 2:59 ` Alex Deucher @ 2018-11-08 7:44 ` Zhang, Jerry(Junwei) [not found] ` <d7df731c-ce0f-1cad-0cf9-15b06fc738db-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 11+ messages in thread From: Zhang, Jerry(Junwei) @ 2018-11-08 7:44 UTC (permalink / raw) To: Alex Deucher, Gong, Curry; +Cc: Deucher, Alexander, amd-gfx list + Curry On 11/8/18 10:59 AM, Alex Deucher wrote: > On Wed, Nov 7, 2018 at 9:05 PM Zhang, Jerry(Junwei) <Jerry.Zhang@amd.com> wrote: >> On 11/8/18 1:29 AM, Alex Deucher wrote: >>> Use the paging queue for buffer functions to avoid contention >>> with the other queues. >>> >>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> >> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> > Can someone with a vega10 test this? > > Alex > >>> --- >>> drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- >>> 1 file changed, 11 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> index e39a09eb0fa1..4b5b47dd2f4c 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) >>> u32 rb_cntl, ib_cntl; >>> int i; >>> >>> + if ((adev->mman.buffer_funcs_ring == sdma0) || >>> + (adev->mman.buffer_funcs_ring == sdma1)) >>> + amdgpu_ttm_set_buffer_funcs_status(adev, false); >>> + >>> for (i = 0; i < adev->sdma.num_instances; i++) { >>> rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); >>> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, >>> @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) >>> r = amdgpu_ring_test_helper(page); >>> if (r) >>> return r; >>> + >>> + if (adev->mman.buffer_funcs_ring == page) >>> + amdgpu_ttm_set_buffer_funcs_status(adev, true); >>> } >>> >>> if (adev->mman.buffer_funcs_ring == ring) >>> @@ -2054,7 +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { >>> static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) >>> { >>> adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; >>> - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; >>> + if (adev->sdma.has_page_queue) >>> + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; >>> + else >>> + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; >>> } >>> >>> static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = { _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <d7df731c-ce0f-1cad-0cf9-15b06fc738db-5C7GfCeVMHo@public.gmane.org>]
* RE: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs [not found] ` <d7df731c-ce0f-1cad-0cf9-15b06fc738db-5C7GfCeVMHo@public.gmane.org> @ 2018-11-08 8:14 ` Gong, Curry [not found] ` <BN6PR12MB1586D7AC56967190DFD835B59DC50-/b2+HYfkarTyoQOqIZFxpgdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org> 0 siblings, 1 reply; 11+ messages in thread From: Gong, Curry @ 2018-11-08 8:14 UTC (permalink / raw) To: Zhang, Jerry, Alex Deucher; +Cc: Deucher, Alexander, amd-gfx list Hi Alex: I have tested this patch base on branch "amd-staging-dkms-4.18" glmark2 and unigine_heaven Tested-by: Chen Gong <Curry.Gong@amd.com> -----Original Message----- From: Zhang, Jerry <Jerry.Zhang@amd.com> Sent: Thursday, November 8, 2018 3:45 PM To: Alex Deucher <alexdeucher@gmail.com>; Gong, Curry <Curry.Gong@amd.com> Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher@amd.com> Subject: Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs + Curry On 11/8/18 10:59 AM, Alex Deucher wrote: > On Wed, Nov 7, 2018 at 9:05 PM Zhang, Jerry(Junwei) <Jerry.Zhang@amd.com> wrote: >> On 11/8/18 1:29 AM, Alex Deucher wrote: >>> Use the paging queue for buffer functions to avoid contention with >>> the other queues. >>> >>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> >> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> > Can someone with a vega10 test this? > > Alex > >>> --- >>> drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- >>> 1 file changed, 11 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> index e39a09eb0fa1..4b5b47dd2f4c 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) >>> u32 rb_cntl, ib_cntl; >>> int i; >>> >>> + if ((adev->mman.buffer_funcs_ring == sdma0) || >>> + (adev->mman.buffer_funcs_ring == sdma1)) >>> + amdgpu_ttm_set_buffer_funcs_status(adev, false); >>> + >>> for (i = 0; i < adev->sdma.num_instances; i++) { >>> rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); >>> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, >>> @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) >>> r = amdgpu_ring_test_helper(page); >>> if (r) >>> return r; >>> + >>> + if (adev->mman.buffer_funcs_ring == page) >>> + >>> + amdgpu_ttm_set_buffer_funcs_status(adev, true); >>> } >>> >>> if (adev->mman.buffer_funcs_ring == ring) @@ -2054,7 >>> +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { >>> static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) >>> { >>> adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; >>> - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; >>> + if (adev->sdma.has_page_queue) >>> + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; >>> + else >>> + adev->mman.buffer_funcs_ring = >>> + &adev->sdma.instance[0].ring; >>> } >>> >>> static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = >>> { _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <BN6PR12MB1586D7AC56967190DFD835B59DC50-/b2+HYfkarTyoQOqIZFxpgdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>]
* RE: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs [not found] ` <BN6PR12MB1586D7AC56967190DFD835B59DC50-/b2+HYfkarTyoQOqIZFxpgdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org> @ 2018-11-08 8:15 ` Gong, Curry 0 siblings, 0 replies; 11+ messages in thread From: Gong, Curry @ 2018-11-08 8:15 UTC (permalink / raw) To: Zhang, Jerry, Alex Deucher; +Cc: Deucher, Alexander, amd-gfx list Result is pass -----Original Message----- From: Gong, Curry Sent: Thursday, November 8, 2018 4:14 PM To: Zhang, Jerry <Jerry.Zhang@amd.com>; Alex Deucher <alexdeucher@gmail.com> Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher@amd.com> Subject: RE: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs Hi Alex: I have tested this patch base on branch "amd-staging-dkms-4.18" glmark2 and unigine_heaven Tested-by: Chen Gong <Curry.Gong@amd.com> -----Original Message----- From: Zhang, Jerry <Jerry.Zhang@amd.com> Sent: Thursday, November 8, 2018 3:45 PM To: Alex Deucher <alexdeucher@gmail.com>; Gong, Curry <Curry.Gong@amd.com> Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher@amd.com> Subject: Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs + Curry On 11/8/18 10:59 AM, Alex Deucher wrote: > On Wed, Nov 7, 2018 at 9:05 PM Zhang, Jerry(Junwei) <Jerry.Zhang@amd.com> wrote: >> On 11/8/18 1:29 AM, Alex Deucher wrote: >>> Use the paging queue for buffer functions to avoid contention with >>> the other queues. >>> >>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> >> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> > Can someone with a vega10 test this? > > Alex > >>> --- >>> drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- >>> 1 file changed, 11 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> index e39a09eb0fa1..4b5b47dd2f4c 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c >>> @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) >>> u32 rb_cntl, ib_cntl; >>> int i; >>> >>> + if ((adev->mman.buffer_funcs_ring == sdma0) || >>> + (adev->mman.buffer_funcs_ring == sdma1)) >>> + amdgpu_ttm_set_buffer_funcs_status(adev, false); >>> + >>> for (i = 0; i < adev->sdma.num_instances; i++) { >>> rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); >>> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, >>> @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) >>> r = amdgpu_ring_test_helper(page); >>> if (r) >>> return r; >>> + >>> + if (adev->mman.buffer_funcs_ring == page) >>> + >>> + amdgpu_ttm_set_buffer_funcs_status(adev, true); >>> } >>> >>> if (adev->mman.buffer_funcs_ring == ring) @@ -2054,7 >>> +2061,10 @@ static const struct amdgpu_buffer_funcs >>> +sdma_v4_0_buffer_funcs = { >>> static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) >>> { >>> adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; >>> - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; >>> + if (adev->sdma.has_page_queue) >>> + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; >>> + else >>> + adev->mman.buffer_funcs_ring = >>> + &adev->sdma.instance[0].ring; >>> } >>> >>> static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = >>> { _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs [not found] ` <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-07 17:29 ` [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 " Alex Deucher 2018-11-08 2:05 ` [PATCH 1/2] drm/amdgpu/sdma4: use paging queue " Zhang, Jerry(Junwei) @ 2018-11-08 8:01 ` Christian König 2 siblings, 0 replies; 11+ messages in thread From: Christian König @ 2018-11-08 8:01 UTC (permalink / raw) To: Alex Deucher, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Alex Deucher Am 07.11.18 um 18:29 schrieb Alex Deucher: > Use the paging queue for buffer functions to avoid contention > with the other queues. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index e39a09eb0fa1..4b5b47dd2f4c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -662,6 +662,10 @@ static void sdma_v4_0_page_stop(struct amdgpu_device *adev) > u32 rb_cntl, ib_cntl; > int i; > > + if ((adev->mman.buffer_funcs_ring == sdma0) || > + (adev->mman.buffer_funcs_ring == sdma1)) > + amdgpu_ttm_set_buffer_funcs_status(adev, false); > + > for (i = 0; i < adev->sdma.num_instances; i++) { > rb_cntl = RREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL); > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_PAGE_RB_CNTL, > @@ -1152,6 +1156,9 @@ static int sdma_v4_0_start(struct amdgpu_device *adev) > r = amdgpu_ring_test_helper(page); > if (r) > return r; > + > + if (adev->mman.buffer_funcs_ring == page) > + amdgpu_ttm_set_buffer_funcs_status(adev, true); > } > > if (adev->mman.buffer_funcs_ring == ring) > @@ -2054,7 +2061,10 @@ static const struct amdgpu_buffer_funcs sdma_v4_0_buffer_funcs = { > static void sdma_v4_0_set_buffer_funcs(struct amdgpu_device *adev) > { > adev->mman.buffer_funcs = &sdma_v4_0_buffer_funcs; > - adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > + if (adev->sdma.has_page_queue) > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].page; > + else > + adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; > } > > static const struct amdgpu_vm_pte_funcs sdma_v4_0_vm_pte_funcs = { _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-11-08 8:15 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-11-07 17:29 [PATCH 1/2] drm/amdgpu/sdma4: use paging queue for buffer funcs Alex Deucher [not found] ` <20181107172949.27158-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-07 17:29 ` [PATCH 2/2] drm/amdgpu/sdma4: use page queue 1 " Alex Deucher [not found] ` <20181107172949.27158-2-alexander.deucher-5C7GfCeVMHo@public.gmane.org> 2018-11-08 2:11 ` Zhang, Jerry(Junwei) [not found] ` <9da6b213-e2d2-c0eb-6f6d-8ce39bcc2152-5C7GfCeVMHo@public.gmane.org> 2018-11-08 2:58 ` Alex Deucher 2018-11-08 8:00 ` Christian König 2018-11-08 2:05 ` [PATCH 1/2] drm/amdgpu/sdma4: use paging queue " Zhang, Jerry(Junwei) [not found] ` <19502b5a-8508-3b59-b50e-44de4ade535b-5C7GfCeVMHo@public.gmane.org> 2018-11-08 2:59 ` Alex Deucher 2018-11-08 7:44 ` Zhang, Jerry(Junwei) [not found] ` <d7df731c-ce0f-1cad-0cf9-15b06fc738db-5C7GfCeVMHo@public.gmane.org> 2018-11-08 8:14 ` Gong, Curry [not found] ` <BN6PR12MB1586D7AC56967190DFD835B59DC50-/b2+HYfkarTyoQOqIZFxpgdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org> 2018-11-08 8:15 ` Gong, Curry 2018-11-08 8:01 ` Christian König
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.