RE: [PATCH 2/2] drm/amdgpu:256dw is enough for one ib_schedule

2016-08-25 Thread Liu, Monk
But even user space will submit 10 ibs this submission, the calculate of 
256*ibs is totally overflow, remember that ring buffer is only 4kb size

-Original Message-
From: Christian König [mailto:deathsim...@vodafone.de] 
Sent: Thursday, August 25, 2016 4:12 PM
To: Liu, Monk ; amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/amdgpu:256dw is enough for one ib_schedule

Well userspace is allowed to send any number of IBs down to this if I remember 
correctly.

So we clearly need something depending on the number of IBs or reject 
submissions with to many IBs earlier in the CS.

Otherwise we clearly open up a possible problem where userspace can trigger a 
ring overrun.

Regards,
Christian.

Am 25.08.2016 um 07:58 schrieb Monk Liu:
> Change-Id: I1ee3258276868a753e536ae2d9ae1b12e7eaf791
> Signed-off-by: Monk Liu 
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> index 4e5b2f3..b82904c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> @@ -151,7 +151,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned 
> num_ibs,
>   return -EINVAL;
>   }
>   
> - r = amdgpu_ring_alloc(ring, 256 * num_ibs);
> + r = amdgpu_ring_alloc(ring, 256);
>   if (r) {
>   dev_err(adev->dev, "scheduling IB failed (%d).\n", r);
>   return r;


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


Re: [PATCH 2/2] drm/amdgpu:256dw is enough for one ib_schedule

2016-08-25 Thread Christian König
True indeed. Something like 256 + 32 * num_ibs (or even 16 * num_ibs??? 
Need to double check) should do as well.


Christian.

Am 25.08.2016 um 10:28 schrieb Liu, Monk:

But even user space will submit 10 ibs this submission, the calculate of 
256*ibs is totally overflow, remember that ring buffer is only 4kb size

-Original Message-
From: Christian König [mailto:deathsim...@vodafone.de]
Sent: Thursday, August 25, 2016 4:12 PM
To: Liu, Monk ; amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/amdgpu:256dw is enough for one ib_schedule

Well userspace is allowed to send any number of IBs down to this if I remember 
correctly.

So we clearly need something depending on the number of IBs or reject 
submissions with to many IBs earlier in the CS.

Otherwise we clearly open up a possible problem where userspace can trigger a 
ring overrun.

Regards,
Christian.

Am 25.08.2016 um 07:58 schrieb Monk Liu:

Change-Id: I1ee3258276868a753e536ae2d9ae1b12e7eaf791
Signed-off-by: Monk Liu 
---
   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 4e5b2f3..b82904c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -151,7 +151,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned 
num_ibs,
return -EINVAL;
}
   
-	r = amdgpu_ring_alloc(ring, 256 * num_ibs);

+   r = amdgpu_ring_alloc(ring, 256);
if (r) {
dev_err(adev->dev, "scheduling IB failed (%d).\n", r);
return r;




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


Re: [PATCH 2/2] drm/amdgpu:256dw is enough for one ib_schedule

2016-08-25 Thread Christian König
Well userspace is allowed to send any number of IBs down to this if I 
remember correctly.


So we clearly need something depending on the number of IBs or reject 
submissions with to many IBs earlier in the CS.


Otherwise we clearly open up a possible problem where userspace can 
trigger a ring overrun.


Regards,
Christian.

Am 25.08.2016 um 07:58 schrieb Monk Liu:

Change-Id: I1ee3258276868a753e536ae2d9ae1b12e7eaf791
Signed-off-by: Monk Liu 
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 4e5b2f3..b82904c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -151,7 +151,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned 
num_ibs,
return -EINVAL;
}
  
-	r = amdgpu_ring_alloc(ring, 256 * num_ibs);

+   r = amdgpu_ring_alloc(ring, 256);
if (r) {
dev_err(adev->dev, "scheduling IB failed (%d).\n", r);
return r;



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