From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/3] drm/i915: Preallocate mm node for GTT mmap offset Date: Tue, 18 Dec 2012 22:11:14 +0100 Message-ID: <20121218211114.GY5737@phenom.ffwll.local> References: <1354912628-7776-1-git-send-email-chris@chris-wilson.co.uk> <1354912628-7776-3-git-send-email-chris@chris-wilson.co.uk> <87sj7ba6lw.fsf@intel.com> <84c8a8$6tu5jj@orsmga001.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f181.google.com (mail-ea0-f181.google.com [209.85.215.181]) by gabe.freedesktop.org (Postfix) with ESMTP id ADC33E5C78 for ; Tue, 18 Dec 2012 13:09:40 -0800 (PST) Received: by mail-ea0-f181.google.com with SMTP id k14so498256eaa.40 for ; Tue, 18 Dec 2012 13:09:39 -0800 (PST) Content-Disposition: inline In-Reply-To: <84c8a8$6tu5jj@orsmga001.jf.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, Dec 12, 2012 at 10:55:17AM +0000, Chris Wilson wrote: > On Wed, 12 Dec 2012 12:48:43 +0200, Jani Nikula wrote: > > On Fri, 07 Dec 2012, Chris Wilson wrote: > > > As the shrinker may be invoked for the allocation, and it may reap > > > neighbouring objects in the offset range mm, we need to be careful in > > > the order in which we allocate the node, search for free space and then > > > insert the node into the mmap offset range manager. > > > > > > Fixes i-g-t/gem_tiled_swapping > > > > > > Reported-by: Mika Kuoppala > > > Signed-off-by: Chris Wilson > > > --- > > > drivers/gpu/drm/i915/i915_gem.c | 59 ++++++++++++++++++++++++++++++++------- > > > 1 file changed, 49 insertions(+), 10 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > > > index d17f52d..3ab97c6 100644 > > > --- a/drivers/gpu/drm/i915/i915_gem.c > > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > > @@ -1512,14 +1512,29 @@ i915_gem_get_unfenced_gtt_alignment(struct drm_device *dev, > > > static int i915_gem_object_create_mmap_offset(struct drm_i915_gem_object *obj) > > > { > > > struct drm_i915_private *dev_priv = obj->base.dev->dev_private; > > > + struct drm_gem_mm *mm = obj->base.dev->mm_private; > > > + struct drm_map_list *list; > > > int ret; > > > > > > - if (obj->base.map_list.map) > > > + list = &obj->base.map_list; > > > + if (list->map) > > > return 0; > > > > > > - ret = drm_gem_create_mmap_offset(&obj->base); > > > - if (ret != -ENOSPC) > > > - return ret; > > > + /* Set the object up for mmap'ing */ > > > + list->map = kzalloc(sizeof(struct drm_map_list), GFP_KERNEL); > > > > sizeof(struct drm_local_map) or sizeof(*list->map) instead? > > > > Hmm, it's like this in drm_gem_create_mmap_offset too, either it's a bug > > or I'm being clueless. > > You're right it's a a bug but fortunately in the safe direction, I'd > vote for sizeof(*list->map) as unequivocal. All applied with bikeshed and pushed to -fixes, thanks. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch