From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4 2/3] drm/i915: Fix userptr deadlock with aliased GTT mmappings Date: Thu, 10 Sep 2015 11:31:36 +0100 Message-ID: <55F15C08.9040708@linux.intel.com> References: <1441878715-24948-1-git-send-email-chris@chris-wilson.co.uk> <1441878715-24948-2-git-send-email-chris@chris-wilson.co.uk> <55F15A96.1080008@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D9686E20F for ; Thu, 10 Sep 2015 03:31:38 -0700 (PDT) In-Reply-To: <55F15A96.1080008@linux.intel.com> 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: stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA5LzEwLzIwMTUgMTE6MjUgQU0sIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+PiArCj4+ICsg ICAgYWN0aXZlID0gZmFsc2U7Cj4+ICsgICAgaWYgKHBpbm5lZCA8IDApCj4+ICsgICAgICAgIHJl dCA9IHBpbm5lZDsKPj4gKyAgICBlbHNlIGlmIChwaW5uZWQgPCBudW1fcGFnZXMpCj4+ICsgICAg ICAgIHJldCA9IF9faTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXNfc2NoZWR1bGUob2JqLCAmYWN0 aXZlKTsKPj4gKyAgICBlbHNlCj4+ICAgICAgICAgICByZXQgPSBfX2k5MTVfZ2VtX3VzZXJwdHJf c2V0X3BhZ2VzKG9iaiwgcHZlYywgbnVtX3BhZ2VzKTsKPj4gLSAgICAgICAgaWYgKHJldCA9PSAw KSB7Cj4+IC0gICAgICAgICAgICBvYmotPnVzZXJwdHIud29yayA9IE5VTEw7Cj4+IC0gICAgICAg ICAgICBwaW5uZWQgPSAwOwo+PiAtICAgICAgICB9Cj4+ICsgICAgaWYgKHJldCkgewo+PiArICAg ICAgICBfX2k5MTVfZ2VtX3VzZXJwdHJfc2V0X2FjdGl2ZShvYmosIGFjdGl2ZSk7Cj4+ICsgICAg ICAgIHJlbGVhc2VfcGFnZXMocHZlYywgcGlubmVkLCAwKTsKPgo+IEkgdGhpbmsgaXQgd291bGQg YmUgc2FmZXIgdG8gc2V0IHBpbm5lZCB0byB6ZXJvIGluIHRoZSBwaW5uZWQgPCAwIGNhc2UsCj4g cmF0aGVyIHRoYW4gcmVseSBvbiByZWxlYXNlX3BhZ2VzIGltcGxlbWVudGF0aW9uIGtub3dsZWRn ZS4gT3RoZXJ3aXNlIGl0Cj4gaXMgdG9vIGZyYWdpbGUuCj4KPiBJZiB5b3UgY2FuIHB1dCB0aGF0 IGJhY2sgeW91IGNhbiBwdXQgbXkgUi1CIG9uIHRoZSBwYXRjaC4KCk9yIHBvc3NpYmx5IGV2ZW4g YmV0dGVyOgoKaWYgKHBpbm5lZCA+PSAwKQoJcmVsZWFzZV9wYWdlcyguLi4pOwoKPwoKVHZydGtv CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com ([134.134.136.65]:47518 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752766AbbIJKbi (ORCPT ); Thu, 10 Sep 2015 06:31:38 -0400 Subject: Re: [Intel-gfx] [PATCH v4 2/3] drm/i915: Fix userptr deadlock with aliased GTT mmappings To: Chris Wilson , intel-gfx@lists.freedesktop.org References: <1441878715-24948-1-git-send-email-chris@chris-wilson.co.uk> <1441878715-24948-2-git-send-email-chris@chris-wilson.co.uk> <55F15A96.1080008@linux.intel.com> Cc: stable@vger.kernel.org From: Tvrtko Ursulin Message-ID: <55F15C08.9040708@linux.intel.com> Date: Thu, 10 Sep 2015 11:31:36 +0100 MIME-Version: 1.0 In-Reply-To: <55F15A96.1080008@linux.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 09/10/2015 11:25 AM, Tvrtko Ursulin wrote: >> + >> + active = false; >> + if (pinned < 0) >> + ret = pinned; >> + else if (pinned < num_pages) >> + ret = __i915_gem_userptr_get_pages_schedule(obj, &active); >> + else >> ret = __i915_gem_userptr_set_pages(obj, pvec, num_pages); >> - if (ret == 0) { >> - obj->userptr.work = NULL; >> - pinned = 0; >> - } >> + if (ret) { >> + __i915_gem_userptr_set_active(obj, active); >> + release_pages(pvec, pinned, 0); > > I think it would be safer to set pinned to zero in the pinned < 0 case, > rather than rely on release_pages implementation knowledge. Otherwise it > is too fragile. > > If you can put that back you can put my R-B on the patch. Or possibly even better: if (pinned >= 0) release_pages(...); ? Tvrtko