From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 5/6] drm/msm: preserve IOVAs in submit's bo table Date: Tue, 24 Oct 2017 09:22:52 -0400 Message-ID: <20171024132256.20286-6-robdclark@gmail.com> References: <20171024132256.20286-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171024132256.20286-1-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org V2UgbmVlZCB0aGlzIGlmIHdlIHdhbnQgdG8gZHVtcCB0aGUgc3VibWl0IGFmdGVyIGNsZWFudXAg KGllLiBmcm9tIGhhbmcKb3IgZmF1bHQpLiAgQnV0IGluIHRoZSBiYWNrb2ZmL3VucGluIGNhc2Ug d2Ugd2FudCB0byBjbGVhciB0aGVtLiAgU28gYWRkCmEgZmxhZyBzbyB3ZSBjYW4gc2tpcCBjbGVh cmluZyB0aGUgSU9WQXMgaW4gYXQgY2xlYW51cC4KClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8 cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3Vi bWl0LmMgfCAxMSArKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1f c3VibWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKaW5kZXggNjk4 Njg2ODJmOGY0Li5iOGRjOGY5NmNhZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2dlbV9zdWJtaXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0 LmMKQEAgLTE2MSw3ICsxNjEsOCBAQCBzdGF0aWMgaW50IHN1Ym1pdF9sb29rdXBfb2JqZWN0cyhz dHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg dm9pZCBzdWJtaXRfdW5sb2NrX3VucGluX2JvKHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0 LCBpbnQgaSkKK3N0YXRpYyB2b2lkIHN1Ym1pdF91bmxvY2tfdW5waW5fYm8oc3RydWN0IG1zbV9n ZW1fc3VibWl0ICpzdWJtaXQsCisJCWludCBpLCBib29sIGJhY2tvZmYpCiB7CiAJc3RydWN0IG1z bV9nZW1fb2JqZWN0ICptc21fb2JqID0gc3VibWl0LT5ib3NbaV0ub2JqOwogCkBAIC0xNzEsNyAr MTcyLDcgQEAgc3RhdGljIHZvaWQgc3VibWl0X3VubG9ja191bnBpbl9ibyhzdHJ1Y3QgbXNtX2dl bV9zdWJtaXQgKnN1Ym1pdCwgaW50IGkpCiAJaWYgKHN1Ym1pdC0+Ym9zW2ldLmZsYWdzICYgQk9f TE9DS0VEKQogCQl3d19tdXRleF91bmxvY2soJm1zbV9vYmotPnJlc3YtPmxvY2spOwogCi0JaWYg KCEoc3VibWl0LT5ib3NbaV0uZmxhZ3MgJiBCT19WQUxJRCkpCisJaWYgKGJhY2tvZmYgJiYgIShz dWJtaXQtPmJvc1tpXS5mbGFncyAmIEJPX1ZBTElEKSkKIAkJc3VibWl0LT5ib3NbaV0uaW92YSA9 IDA7CiAKIAlzdWJtaXQtPmJvc1tpXS5mbGFncyAmPSB+KEJPX0xPQ0tFRCB8IEJPX1BJTk5FRCk7 CkBAIC0yMDYsMTAgKzIwNywxMCBAQCBzdGF0aWMgaW50IHN1Ym1pdF9sb2NrX29iamVjdHMoc3Ry dWN0IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQpCiAKIGZhaWw6CiAJZm9yICg7IGkgPj0gMDsgaS0t KQotCQlzdWJtaXRfdW5sb2NrX3VucGluX2JvKHN1Ym1pdCwgaSk7CisJCXN1Ym1pdF91bmxvY2tf dW5waW5fYm8oc3VibWl0LCBpLCB0cnVlKTsKIAogCWlmIChzbG93X2xvY2tlZCA+IDApCi0JCXN1 Ym1pdF91bmxvY2tfdW5waW5fYm8oc3VibWl0LCBzbG93X2xvY2tlZCk7CisJCXN1Ym1pdF91bmxv Y2tfdW5waW5fYm8oc3VibWl0LCBzbG93X2xvY2tlZCwgdHJ1ZSk7CiAKIAlpZiAocmV0ID09IC1F REVBRExLKSB7CiAJCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHN1Ym1pdC0+Ym9z W2NvbnRlbmRlZF0ub2JqOwpAQCAtMzkzLDcgKzM5NCw3IEBAIHN0YXRpYyB2b2lkIHN1Ym1pdF9j bGVhbnVwKHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0KQogCiAJZm9yIChpID0gMDsgaSA8 IHN1Ym1pdC0+bnJfYm9zOyBpKyspIHsKIAkJc3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2Jq ID0gc3VibWl0LT5ib3NbaV0ub2JqOwotCQlzdWJtaXRfdW5sb2NrX3VucGluX2JvKHN1Ym1pdCwg aSk7CisJCXN1Ym1pdF91bmxvY2tfdW5waW5fYm8oc3VibWl0LCBpLCBmYWxzZSk7CiAJCWxpc3Rf ZGVsX2luaXQoJm1zbV9vYmotPnN1Ym1pdF9lbnRyeSk7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlKCZtc21fb2JqLT5iYXNlKTsKIAl9Ci0tIAoyLjEzLjYKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934173AbdJXNXm (ORCPT ); Tue, 24 Oct 2017 09:23:42 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:45792 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933794AbdJXNXa (ORCPT ); Tue, 24 Oct 2017 09:23:30 -0400 X-Google-Smtp-Source: ABhQp+RxrdE6DFoTqeIDiVle557vgpdSVLPxSwZJv7waqRsKYTe21qOYLaUr/lVLZOdgthpmS9BuEQ== From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Jordan Crouse , Rob Clark , David Airlie , linux-kernel@vger.kernel.org Subject: [PATCH 5/6] drm/msm: preserve IOVAs in submit's bo table Date: Tue, 24 Oct 2017 09:22:52 -0400 Message-Id: <20171024132256.20286-6-robdclark@gmail.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171024132256.20286-1-robdclark@gmail.com> References: <20171024132256.20286-1-robdclark@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We need this if we want to dump the submit after cleanup (ie. from hang or fault). But in the backoff/unpin case we want to clear them. So add a flag so we can skip clearing the IOVAs in at cleanup. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_gem_submit.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index 69868682f8f4..b8dc8f96caf2 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -161,7 +161,8 @@ static int submit_lookup_objects(struct msm_gem_submit *submit, return ret; } -static void submit_unlock_unpin_bo(struct msm_gem_submit *submit, int i) +static void submit_unlock_unpin_bo(struct msm_gem_submit *submit, + int i, bool backoff) { struct msm_gem_object *msm_obj = submit->bos[i].obj; @@ -171,7 +172,7 @@ static void submit_unlock_unpin_bo(struct msm_gem_submit *submit, int i) if (submit->bos[i].flags & BO_LOCKED) ww_mutex_unlock(&msm_obj->resv->lock); - if (!(submit->bos[i].flags & BO_VALID)) + if (backoff && !(submit->bos[i].flags & BO_VALID)) submit->bos[i].iova = 0; submit->bos[i].flags &= ~(BO_LOCKED | BO_PINNED); @@ -206,10 +207,10 @@ static int submit_lock_objects(struct msm_gem_submit *submit) fail: for (; i >= 0; i--) - submit_unlock_unpin_bo(submit, i); + submit_unlock_unpin_bo(submit, i, true); if (slow_locked > 0) - submit_unlock_unpin_bo(submit, slow_locked); + submit_unlock_unpin_bo(submit, slow_locked, true); if (ret == -EDEADLK) { struct msm_gem_object *msm_obj = submit->bos[contended].obj; @@ -393,7 +394,7 @@ static void submit_cleanup(struct msm_gem_submit *submit) for (i = 0; i < submit->nr_bos; i++) { struct msm_gem_object *msm_obj = submit->bos[i].obj; - submit_unlock_unpin_bo(submit, i); + submit_unlock_unpin_bo(submit, i, false); list_del_init(&msm_obj->submit_entry); drm_gem_object_unreference(&msm_obj->base); } -- 2.13.6