Hi Rob,
I can see how we can trigger the shrinker on objB while holding objA->lock. So,
the nested lock with class SHRINKER makes sense.
However, I’m trying to figure how the get_pages/vmap/fault path on an objA can
end up triggering the shrinker on objA itself. As objA itself would not be
purg
Hi Rob,
Yes, I’d completely missed the shrinker path in this cleanup. But, yeah, I see
how get_pages (which is called with msm_obj->lock held) -> drm_gem_get_pages
could trigger shrinker_scan which calls msm_gem_purge.
It makes sense to prevent any get_pages/vmap on objects that’ve been marked a