From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [PATCH 3/3] drm/i915: use might_lock_nested in get_pages annotation Date: Fri, 23 Aug 2019 10:49:56 +0200 Message-ID: <20190823084956.GF2369@hirez.programming.kicks-ass.net> References: <20190820081951.25053-1-daniel.vetter@ffwll.ch> <20190820081951.25053-3-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20190820081951.25053-3-daniel.vetter@ffwll.ch> Sender: linux-kernel-owner@vger.kernel.org To: Daniel Vetter Cc: Intel Graphics Development , LKML , Daniel Vetter , Ingo Molnar , Will Deacon List-Id: intel-gfx@lists.freedesktop.org On Tue, Aug 20, 2019 at 10:19:51AM +0200, Daniel Vetter wrote: > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h > index a0b1fa8a3224..b3fd6aac93bc 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h > @@ -233,10 +233,26 @@ void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj, > int ____i915_gem_object_get_pages(struct drm_i915_gem_object *obj); > int __i915_gem_object_get_pages(struct drm_i915_gem_object *obj); > > +enum i915_mm_subclass { /* lockdep subclass for obj->mm.lock/struct_mutex */ > + I915_MM_NORMAL = 0, > + /* > + * Only used by struct_mutex, when called "recursively" from > + * direct-reclaim-esque. Safe because there is only every one > + * struct_mutex in the entire system. */ > + I915_MM_SHRINKER = 1, > + /* > + * Used for obj->mm.lock when allocating pages. Safe because the object > + * isn't yet on any LRU, and therefore the shrinker can't deadlock on > + * it. As soon as the object has pages, obj->mm.lock nests within > + * fs_reclaim. > + */ > + I915_MM_GET_PAGES = 1, Those comments are inconsistently styled; if you move them, might as well fix that too :-) > +}; > +