drm: Trim the GEM mmap offset hashtab
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 12 Jan 2011 21:11:33 +0000 (21:11 +0000)
committerDave Airlie <airlied@redhat.com>
Wed, 23 Feb 2011 01:15:39 +0000 (11:15 +1000)
Using an order 19 drm_ht for the mmap offsets is a little obscene. That
means that will a fully populated GTT with every single object mmaped at
least once in its lifetime, there will be exactly one object in each
bucket.

Typically systems only have at most a few thousand objects, though you
may see a KDE desktop hit 50000. And most of those should never be
mapped... On my systems, just using an order 10 ht would still have an
average occupancy less than 1, so apply a small safety factor and
use an order 12 ht, like the other mmap offset ht.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_gem.c

index aa8df25348195cb9eade1b7eb7808b12eaac235b..57ce27c9a747799dfb5065a056747d1b2d30bcab 100644 (file)
@@ -101,7 +101,7 @@ drm_gem_init(struct drm_device *dev)
 
        dev->mm_private = mm;
 
-       if (drm_ht_create(&mm->offset_hash, 19)) {
+       if (drm_ht_create(&mm->offset_hash, 12)) {
                kfree(mm);
                return -ENOMEM;
        }