Kuo-Hsin Yang <vovoy@xxxxxxxxxxxx> writes: > The gem drivers use shmemfs to allocate backing storage for gem objects. > On Samsung Chromebook Plus, the drm/rockchip driver may call > rockchip_gem_get_pages -> drm_gem_get_pages -> shmem_read_mapping_page > to pin a lot of pages, breaking the page reclaim mechanism and causing > oom-killer invocation. > > E.g. when the size of a zone is 3.9 GiB, the inactive_ratio is 5. If > active_anon / inactive_anon < 5 and all pages in the inactive_anon lru > are pinned, page reclaim would keep scanning inactive_anon lru without > reclaiming memory. It breaks page reclaim when the rockchip driver only > pins about 1/6 of the anon lru pages. > > Mark these pinned pages as unevictable to avoid the premature oom-killer > invocation. See also similar patch on i915 driver [1]. > > [1]: https://patchwork.freedesktop.org/patch/msgid/20181106132324.17390-1-chris@xxxxxxxxxxxxxxxxxx > > Signed-off-by: Kuo-Hsin Yang <vovoy@xxxxxxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> This patch helped me valgrind a CTS case with ~130MB of BOs on a system with ~600MB of RAM available to Linux without getting oomkilled. Thanks!
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel