From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH] drm/i915: grab a pages pin count for preallocate stolen Date: Tue, 17 Dec 2013 16:00:13 -0800 Message-ID: <20131218000013.GC24628@intel.com> References: <1387320131-16740-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 63550FD350 for ; Tue, 17 Dec 2013 16:00:16 -0800 (PST) Received: by mail-pa0-f47.google.com with SMTP id kq14so5125918pab.6 for ; Tue, 17 Dec 2013 16:00:16 -0800 (PST) Content-Disposition: inline In-Reply-To: <1387320131-16740-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Daniel Vetter Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org On Tue, Dec 17, 2013 at 11:42:11PM +0100, Daniel Vetter wrote: > But only when we indeed set up a gtt mapping. We need this since the > vma also holds a pages_pin_count, on top of the unconditional > pages_pin_count we grab for all stolen objects (to avoid swap-out). > > This should avoid a pages_pin_count underrun when cleaning up > framebuffers objects taken over from the BIOS. > > Reported-by: Jesse Barnes > Cc: Jesse Barnes > Cc: Ben Widawsky > Signed-off-by: Daniel Vetter > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c > index d284d892ed94..fed87ec17211 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -420,6 +420,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, > > list_add_tail(&obj->global_list, &dev_priv->mm.bound_list); > list_add_tail(&vma->mm_list, &ggtt->inactive_list); > + i915_gem_object_pin_pages(obj); > > return obj; > > -- > 1.8.4.3 > I'm missing why _i915_gem_object_create_stolen() isn't good enough for pinning the pages. -- Ben Widawsky, Intel Open Source Technology Center