From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 3/3] drm/i915: Remove the vma from the drm_mm if binding fails Date: Mon, 27 Feb 2017 14:02:00 +0200 Message-ID: <1488196920.3324.6.camel@linux.intel.com> References: <20170225232536.2277-1-chris@chris-wilson.co.uk> <20170225232536.2277-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 22E1C6E3DB for ; Mon, 27 Feb 2017 12:02:06 +0000 (UTC) In-Reply-To: <20170225232536.2277-3-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: "# v4 . 9+" List-Id: intel-gfx@lists.freedesktop.org T24gbGEsIDIwMTctMDItMjUgYXQgMjM6MjUgKzAwMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBB cyB3ZSB0cmFjayB3aGV0aGVyIGEgdm1hIGhhcyBiZWVuIGluc2VydGVkIGludG8gdGhlIGRybV9t bSB1c2luZyB0aGUKPiB2bWEtPmZsYWdzLCBpZiB3ZSBmYWlsIHRvIGJpbmQgdGhlIHZtYSBpbnRv IHRoZSBHVFQgd2UgZG8gbm90IHVwZGF0ZQo+IHRob3NlIGJpdHMgYW5kIHdpbGwgYXR0ZW1wdCB0 byByZWluc2VydCB0aGUgdm1hIGludG8gdGhlIGRybV9tbSBvbgo+IGZ1dHVyZSBwYXNzZXMuIFRv IHByZXZlbnQgdGhhdCwgd2Ugd2FudCB0byB1bndpbmQgaTkxNV92bWFfaW5zZXJ0KCkgaWYKPiB3 ZSBmYWlsIGluIG91ciBhdHRlbXB0IHRvIGJpbmQuCj4gCj4gRml4ZXM6IDU5YmZhMTI0OGUyMiAo ImRybS9pOTE1OiBTdGFydCBwYXNzaW5nIGFyb3VuZCBpOTE1X3ZtYSBmcm9tIGV4ZWNidWZmZXIi KQo+IFRlc3RjYXNlOiBpZ3QvZHJ2X3NlbGZ0ZXN0L2xpdmVfZ3R0Cj4gU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1hdHRoZXcgQXVs ZCA8bWF0dGhldy53aWxsaWFtLmF1bGRAZ21haWwuY29tPgo+IENjOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IDxzdGFibGVAdmdlci5rZXJu ZWwub3JnPiAjIHY0LjkrCgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFo dGluZW5AbGludXguaW50ZWwuY29tPgoKT25lIG5vdGUgYmVsb3cuCgo+IEBAIC01NDEsNyArNTY2 LDEyIEBAIGludCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiDCoAlH RU1fQlVHX09OKGk5MTVfdm1hX21pc3BsYWNlZCh2bWEsIHNpemUsIGFsaWdubWVudCwgZmxhZ3Mp KTsKPiDCoAlyZXR1cm4gMDsKPiDCoAo+IC1lcnI6Cj4gK2Vycl9yZW1vdmU6Cj4gKwlpZiAoKHZt YS0+ZmxhZ3MgJiBJOTE1X1ZNQV9CSU5EX01BU0spID09IDApIHsKClRoaXMgY29uZGl0aW9uIGNv dWxkIGJlIG1vcmUgc3ltbWV0cmljLgoKUmVnYXJkcywgSm9vbmFzCgo+ICsJCUdFTV9CVUdfT04o dm1hLT5wYWdlcyk7Cj4gKwkJaTkxNV92bWFfcmVtb3ZlKHZtYSk7Cj4gKwl9Cj4gK2Vycl91bnBp bjoKPiDCoAlfX2k5MTVfdm1hX3VucGluKHZtYSk7Cj4gwqAJcmV0dXJuIHJldDsKPiDCoH0KCi0t IApKb29uYXMgTGFodGluZW4KT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKSW50ZWwgQ29y cG9yYXRpb24KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com ([134.134.136.31]:61522 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751722AbdB0MR2 (ORCPT ); Mon, 27 Feb 2017 07:17:28 -0500 Message-ID: <1488196920.3324.6.camel@linux.intel.com> Subject: Re: [PATCH 3/3] drm/i915: Remove the vma from the drm_mm if binding fails From: Joonas Lahtinen To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Matthew Auld , "# v4 . 9+" Date: Mon, 27 Feb 2017 14:02:00 +0200 In-Reply-To: <20170225232536.2277-3-chris@chris-wilson.co.uk> References: <20170225232536.2277-1-chris@chris-wilson.co.uk> <20170225232536.2277-3-chris@chris-wilson.co.uk> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: On la, 2017-02-25 at 23:25 +0000, Chris Wilson wrote: > As we track whether a vma has been inserted into the drm_mm using the > vma->flags, if we fail to bind the vma into the GTT we do not update > those bits and will attempt to reinsert the vma into the drm_mm on > future passes. To prevent that, we want to unwind i915_vma_insert() if > we fail in our attempt to bind. > > Fixes: 59bfa1248e22 ("drm/i915: Start passing around i915_vma from execbuffer") > Testcase: igt/drv_selftest/live_gtt > Signed-off-by: Chris Wilson > Cc: Matthew Auld > Cc: Joonas Lahtinen > Cc: # v4.9+ Reviewed-by: Joonas Lahtinen One note below. > @@ -541,7 +566,12 @@ int __i915_vma_do_pin(struct i915_vma *vma, >   GEM_BUG_ON(i915_vma_misplaced(vma, size, alignment, flags)); >   return 0; >   > -err: > +err_remove: > + if ((vma->flags & I915_VMA_BIND_MASK) == 0) { This condition could be more symmetric. Regards, Joonas > + GEM_BUG_ON(vma->pages); > + i915_vma_remove(vma); > + } > +err_unpin: >   __i915_vma_unpin(vma); >   return ret; >  } -- Joonas Lahtinen Open Source Technology Center Intel Corporation