On Wed, 26 Aug 2020 at 14:29, Chris Wilson <ch...@chris-wilson.co.uk> wrote:
>
> On 32b, highmem uses a finite set of indirect PTE (i.e. vmap) to provide
> virtual mappings of the high pages. As these are finite, map_new_virtual()
> must wait for some other kmap() to finish when it runs out. If we map a
> large number of objects, there is no method for it to tell us to release
> the mappings, and we deadlock.
>
> However, if we make an explicit vmap of the page, that uses a larger
> vmalloc arena, and also has the ability to tell us to release unwanted
> mappings. Most importantly, it will fail and propagate an error instead
> of waiting forever.
>
> Fixes: fb8621d3bee8 ("drm/i915: Avoid allocating a vmap arena for a single 
> page") #x86-32
> References: e87666b52f00 ("drm/i915/shrinker: Hook up vmap allocation failure 
> notifier")
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> Cc: Harald Arnesen <har...@skogtun.org>
> Cc: <sta...@vger.kernel.org> # v4.7+
Reviewed-by: Matthew Auld <matthew.a...@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to