]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Encourage our shrinker more when our shmemfs allocations fails
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 9 Jun 2017 11:03:46 +0000 (12:03 +0100)
committerJani Nikula <jani.nikula@intel.com>
Mon, 19 Jun 2017 08:19:58 +0000 (11:19 +0300)
commitede57016366e18ed5f998e2beea6a7595b95827d
tree833a0eb138c5ce31ee7ce9ed8a43845efa10571b
parentd603fa331b1bc7b71488d0fb8273fd5db49ed3ef
drm/i915: Encourage our shrinker more when our shmemfs allocations fails

Commit 07f0f46c9f81 ("drm/i915: Prefer to report ENOMEM rather than
incur the oom for gfx allocations") made the bold decision to try and
avoid the oomkiller by reporting -ENOMEM to userspace if our allocation
failed after attempting to free enough buffer objects. In short, it
appears we were giving up too easily (even before we start wondering if
one pass of reclaim is as strong as we would like). Part of the problem
is that if we only shrink just enough pages for our expected allocation,
the likelihood of those pages becoming available to us is less than 100%
To counter-act that we ask for twice the number of pages to be made
available. Furthermore, we allow the shrinker to pull pages from the
active list in later passes.

v2: Be a little more cautious in paging out gfx buffers, and leave that
to a more balanced approach from shrink_slab(). Important when combined
with "drm/i915: Start writeback from the shrinker" as anything shrunk is
immediately swapped out and so should be more conservative.

Fixes: 07f0f46c9f81 ("drm/i915: Prefer to report ENOMEM rather than incur the oom for gfx allocations")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170609110350.1767-1-chris@chris-wilson.co.uk
(cherry picked from commit 4846bf0ca8cb4304dde6140eff33a92b3fe8ef24)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_gem.c