OSDN Git Service

drm/i915/selftests: Increase size for mock ringbuffer
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 15 Nov 2017 15:12:03 +0000 (15:12 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 15 Nov 2017 17:12:49 +0000 (17:12 +0000)
We don't actually emit any commands into the ringbuffer, so we set it
very small. However, an upcoming change centralises the wait-for-space
into i915_gem_request_alloc() and that imposes a minimum size upon all
ringbuffers (mock or real) of MIN_SPACE_FOR_ADD_REQUEST. Grow the
mock ringbuffer such that we allocate a single page for the struct+buffer,
satisfying the new condition without wasting too much space.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171115151204.8105-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/mock_engine.c

index 0aafa8a..55c0e2c 100644 (file)
@@ -124,9 +124,11 @@ static void mock_submit_request(struct drm_i915_gem_request *request)
 
 static struct intel_ring *mock_ring(struct intel_engine_cs *engine)
 {
-       const unsigned long sz = roundup_pow_of_two(sizeof(struct intel_ring));
+       const unsigned long sz = PAGE_SIZE / 2;
        struct intel_ring *ring;
 
+       BUILD_BUG_ON(MIN_SPACE_FOR_ADD_REQUEST > sz);
+
        ring = kzalloc(sizeof(*ring) + sz, GFP_KERNEL);
        if (!ring)
                return NULL;