OSDN Git Service

drm/i915/selftests: Allow huge_gem_object to kick the shrinker
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Jan 2021 02:00:13 +0000 (02:00 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Jan 2021 09:47:24 +0000 (09:47 +0000)
A new fi-cml-dallium CI machine has 8G and apparently plenty free, yet
fails some selftests with ENOMEM. The failures all seem to be from
huge_gem_object which does not try very hard to allocate memory,
skipping reclaim entirely. Let's try a bit harder and direct reclaim
before failing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210112020013.19464-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c

index a768ec6..2fb501a 100644 (file)
@@ -27,7 +27,7 @@ static void huge_free_pages(struct drm_i915_gem_object *obj,
 
 static int huge_get_pages(struct drm_i915_gem_object *obj)
 {
-#define GFP (GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY)
+#define GFP (GFP_KERNEL | __GFP_NOWARN | __GFP_RETRY_MAYFAIL)
        const unsigned long nreal = obj->scratch / PAGE_SIZE;
        const unsigned long npages = obj->base.size / PAGE_SIZE;
        struct scatterlist *sg, *src, *end;