Re: [PATCH] drm/nouveau: force alignment to 0x1000 for gpu objects

2013-09-09 Thread Ben Skeggs
On Wed, Sep 4, 2013 at 9:59 PM, Maarten Lankhorst
maarten.lankho...@canonical.com wrote:
 Op 04-09-13 05:34, Ben Skeggs schreef:
 On Tue, Sep 3, 2013 at 12:31 AM, Maarten Lankhorst
 maarten.lankho...@canonical.com wrote:
 There are a lot of places that allocate multiples of 1000,
 but do not set alignment correctly and still require this
 alignment implicitly or explicitly.
 This is wrong.  Where are the places you think you need this?

 All the calls to nouveau_gpuobj_map_vm for example in 
 core/engine/graph/nvc0.c.

 engctx_create is usually called with alignment = 0x100 too, which seems like 
 it would break in the fifo_context_attach calls too.
All the places I can see with a too small alignment are not
suballocated, so the backend will force alignment to minimum GPU page
size anyway.

If someone wants to go through all these calls and fix them up
explicitly too, then, patches welcome.  The posted patch, however,
isn't the right way to go about this, and I couldn't find an example
yet that'd cause an actual breakage.

Ben.


 ~Maarten
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/nouveau: force alignment to 0x1000 for gpu objects

2013-09-04 Thread Maarten Lankhorst
Op 04-09-13 05:34, Ben Skeggs schreef:
 On Tue, Sep 3, 2013 at 12:31 AM, Maarten Lankhorst
 maarten.lankho...@canonical.com wrote:
 There are a lot of places that allocate multiples of 1000,
 but do not set alignment correctly and still require this
 alignment implicitly or explicitly.
 This is wrong.  Where are the places you think you need this?

All the calls to nouveau_gpuobj_map_vm for example in core/engine/graph/nvc0.c.

engctx_create is usually called with alignment = 0x100 too, which seems like it 
would break in the fifo_context_attach calls too.

~Maarten
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/nouveau: force alignment to 0x1000 for gpu objects

2013-09-03 Thread Ben Skeggs
On Tue, Sep 3, 2013 at 12:31 AM, Maarten Lankhorst
maarten.lankho...@canonical.com wrote:
 There are a lot of places that allocate multiples of 1000,
 but do not set alignment correctly and still require this
 alignment implicitly or explicitly.
This is wrong.  Where are the places you think you need this?

Ben.

 ---
  drivers/gpu/drm/nouveau/core/core/gpuobj.c | 8 
  1 file changed, 8 insertions(+)

 diff --git a/drivers/gpu/drm/nouveau/core/core/gpuobj.c 
 b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 index 7595506..7bcae1d 100644
 --- a/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 +++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 @@ -65,6 +65,14 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
 int ret, i;
 u64 addr;

 +   /*
 +* There are a lot of places that allocate multiples of 1000,
 +* but do not set alignment correctly and still require this
 +* alignment implicitly or explicitly.
 +*/
 +   if (size = 0x1000  align  0x1000)
 +   align = 0x1000;
 +
 *pobject = NULL;

 if (pargpu) {
 --
 1.8.3.4

 ___
 dri-devel mailing list
 dri-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] drm/nouveau: force alignment to 0x1000 for gpu objects

2013-09-02 Thread Maarten Lankhorst
There are a lot of places that allocate multiples of 1000,
but do not set alignment correctly and still require this
alignment implicitly or explicitly.
---
 drivers/gpu/drm/nouveau/core/core/gpuobj.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/core/core/gpuobj.c 
b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
index 7595506..7bcae1d 100644
--- a/drivers/gpu/drm/nouveau/core/core/gpuobj.c
+++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
@@ -65,6 +65,14 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
int ret, i;
u64 addr;
 
+   /*
+* There are a lot of places that allocate multiples of 1000,
+* but do not set alignment correctly and still require this
+* alignment implicitly or explicitly.
+*/
+   if (size = 0x1000  align  0x1000)
+   align = 0x1000;
+
*pobject = NULL;
 
if (pargpu) {
-- 
1.8.3.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel