From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 08/12] drm/ttm: use the parent resv for ghost objects Date: Tue, 16 Apr 2019 20:38:37 +0200 Message-ID: <20190416183841.1577-9-christian.koenig@amd.com> References: <20190416183841.1577-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190416183841.1577-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: sumit.semwal@linaro.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org VGhpcyB3YXkgd2UgY2FuIGV2ZW4gcGlwZWxpbmUgaW1wb3J0ZWQgQk8gZXZpY3Rpb25zLgoKU2ln bmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyB8IDE4ICstLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib191dGlsLmMKaW5kZXggODk1ZDc3ZDc5OWU0Li45N2YzNWM0YmRhMzUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKQEAgLTQ4Niw3ICs0ODYsNiBAQCBzdGF0aWMg aW50IHR0bV9idWZmZXJfb2JqZWN0X3RyYW5zZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAJCQkJICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICoqbmV3X29iaikKIHsKIAlz dHJ1Y3QgdHRtX3RyYW5zZmVyX29iaiAqZmJvOwotCWludCByZXQ7CiAKIAlmYm8gPSBrbWFsbG9j KHNpemVvZigqZmJvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFmYm8pCkBAIC01MTcsMTAgKzUxNiw3 IEBAIHN0YXRpYyBpbnQgdHRtX2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAlrcmVmX2luaXQoJmZiby0+YmFzZS5rcmVmKTsKIAlmYm8tPmJhc2Uu ZGVzdHJveSA9ICZ0dG1fdHJhbnNmZXJlZF9kZXN0cm95OwogCWZiby0+YmFzZS5hY2Nfc2l6ZSA9 IDA7Ci0JZmJvLT5iYXNlLnJlc3YgPSAmZmJvLT5iYXNlLnR0bV9yZXN2OwotCXJlc2VydmF0aW9u X29iamVjdF9pbml0KGZiby0+YmFzZS5yZXN2KTsKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rf dHJ5bG9jayhmYm8tPmJhc2UucmVzdik7Ci0JV0FSTl9PTighcmV0KTsKKwlyZXNlcnZhdGlvbl9v YmplY3RfaW5pdCgmZmJvLT5iYXNlLnR0bV9yZXN2KTsKIAogCSpuZXdfb2JqID0gJmZiby0+YmFz ZTsKIAlyZXR1cm4gMDsKQEAgLTcxNiw4ICs3MTIsNiBAQCBpbnQgdHRtX2JvX21vdmVfYWNjZWxf Y2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAocmV0KQogCQkJcmV0 dXJuIHJldDsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoZ2hvc3Rfb2Jq LT5yZXN2LCBmZW5jZSk7Ci0KIAkJLyoqCiAJCSAqIElmIHdlJ3JlIG5vdCBtb3ZpbmcgdG8gZml4 ZWQgbWVtb3J5LCB0aGUgVFRNIG9iamVjdAogCQkgKiBuZWVkcyB0byBzdGF5IGFsaXZlLiBPdGhl cndoaXNlIGhhbmcgaXQgb24gdGhlIGdob3N0CkBAIC03MjksNyArNzIzLDYgQEAgaW50IHR0bV9i b19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJZWxz ZQogCQkJYm8tPnR0bSA9IE5VTEw7CiAKLQkJdHRtX2JvX3VucmVzZXJ2ZShnaG9zdF9vYmopOwog CQl0dG1fYm9fcHV0KGdob3N0X29iaik7CiAJfQogCkBAIC03NzIsOCArNzY1LDYgQEAgaW50IHR0 bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChy ZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5j ZShnaG9zdF9vYmotPnJlc3YsIGZlbmNlKTsKLQogCQkvKioKIAkJICogSWYgd2UncmUgbm90IG1v dmluZyB0byBmaXhlZCBtZW1vcnksIHRoZSBUVE0gb2JqZWN0CiAJCSAqIG5lZWRzIHRvIHN0YXkg YWxpdmUuIE90aGVyd2hpc2UgaGFuZyBpdCBvbiB0aGUgZ2hvc3QKQEAgLTc4NSw3ICs3NzYsNiBA QCBpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK IAkJZWxzZQogCQkJYm8tPnR0bSA9IE5VTEw7CiAKLQkJdHRtX2JvX3VucmVzZXJ2ZShnaG9zdF9v YmopOwogCQl0dG1fYm9fcHV0KGdob3N0X29iaik7CiAKIAl9IGVsc2UgaWYgKGZyb20tPmZsYWdz ICYgVFRNX01FTVRZUEVfRkxBR19GSVhFRCkgewpAQCAtODQxLDE2ICs4MzEsMTAgQEAgaW50IHR0 bV9ib19waXBlbGluZV9ndXR0aW5nKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJaWYg KHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2Zl bmNlcyhnaG9zdC0+cmVzdiwgYm8tPnJlc3YpOwotCS8qIExhc3QgcmVzb3J0LCB3YWl0IGZvciB0 aGUgQk8gdG8gYmUgaWRsZSB3aGVuIHdlIGFyZSBPT00gKi8KLQlpZiAocmV0KQotCQl0dG1fYm9f d2FpdChibywgZmFsc2UsIGZhbHNlKTsKLQogCW1lbXNldCgmYm8tPm1lbSwgMCwgc2l6ZW9mKGJv LT5tZW0pKTsKIAliby0+bWVtLm1lbV90eXBlID0gVFRNX1BMX1NZU1RFTTsKIAliby0+dHRtID0g TlVMTDsKIAotCXR0bV9ib191bnJlc2VydmUoZ2hvc3QpOwogCXR0bV9ib19wdXQoZ2hvc3QpOwog CiAJcmV0dXJuIDA7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F11F1C10F14 for ; Tue, 16 Apr 2019 18:39:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C521F206BA for ; Tue, 16 Apr 2019 18:39:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ukEXoOwE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730398AbfDPSi4 (ORCPT ); Tue, 16 Apr 2019 14:38:56 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:39927 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730374AbfDPSiz (ORCPT ); Tue, 16 Apr 2019 14:38:55 -0400 Received: by mail-wr1-f67.google.com with SMTP id j9so28469313wrn.6; Tue, 16 Apr 2019 11:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=/Q+iJ6rJZ2HsKCGJQjBe3G9bfJhGCGmYeQPjdB6XZUQ=; b=ukEXoOwEBqy3IRbtG1NbdOrME1rTGkJvvZv02W7F2Sc3QiNSgsezF8Cnnx3Th4sRoM rh4kX/FFL1bOeKq6VjVrZ+BIoHggOKFKYP6d5GhoIiPuc4TIEcQUZ2SUXArAWnoQELTN ue+BI22xwaXvu6KJ7W0rXZE8VapXmSkUAZtdhnKqd6gtAuMZVe8Rn7xHUPiyN+6KdH4M VaT70kxsacb8/zJbxNVgQaVkYlQBdBG2CMWYgnH8T9/XPoSiYhAljEjwE5/jnIMKuZdo P4Ej9iSQIf0MsVJh61NJkgGwYrxiaapRn7AVUtKqfrPGNMkdTv2i0HKO0cmxnA+WmsSi 7mpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/Q+iJ6rJZ2HsKCGJQjBe3G9bfJhGCGmYeQPjdB6XZUQ=; b=aJsQ0DWwdnh01gd20bNZiRkBlA8QicHIQP1y5EvfgIxsuY3H43utWg5SDStAhXlrWe 7r8gUWbtiqd5b92efIBO5st3a/U7NszK9Hdaut1rj4vaQf7jbT7szXv7jdBmEVbZqprS JMc4mJhLNAurSVLaD3f0phZUuX32dXYxm0F48+BIBa2JCsalr4ODsswW3XnQZKndWLTe T7G6CjnFqHaKC53GtaHk3MU/1d2kiPnLLO8/YAg9EZVBpdMg1+8gKiLplfU+kvjR8nQL LXfmp2l0VMafnsxFM21hnCoGmjyHkStHOJlXFRYCJdepV8SwmSNR84KIUviDzOxhhhk1 XmSg== X-Gm-Message-State: APjAAAUJoYDZNlrvify1fN45aVCTPs4AyrKZBKIbwiaRzWC2+LQDYd8P /outYtPXfq8drBylPucXjFU= X-Google-Smtp-Source: APXvYqzagQP4Gn4DI1EX20qWMjFP8Qx2G4jr0CoOD2Mfs94vmMDvMtnm27LgxVW4l+EzQYIbQe1qtg== X-Received: by 2002:adf:e288:: with SMTP id v8mr46638599wri.7.1555439933776; Tue, 16 Apr 2019 11:38:53 -0700 (PDT) Received: from abel.fritz.box ([2a02:908:1252:fb60:fcfa:e34f:82c0:3f66]) by smtp.gmail.com with ESMTPSA id m13sm128823wmg.42.2019.04.16.11.38.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 11:38:53 -0700 (PDT) From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" X-Google-Original-From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: sumit.semwal@linaro.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org Subject: [PATCH 08/12] drm/ttm: use the parent resv for ghost objects Date: Tue, 16 Apr 2019 20:38:37 +0200 Message-Id: <20190416183841.1577-9-christian.koenig@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190416183841.1577-1-christian.koenig@amd.com> References: <20190416183841.1577-1-christian.koenig@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This way we can even pipeline imported BO evictions. Signed-off-by: Christian König --- drivers/gpu/drm/ttm/ttm_bo_util.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 895d77d799e4..97f35c4bda35 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -486,7 +486,6 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo, struct ttm_buffer_object **new_obj) { struct ttm_transfer_obj *fbo; - int ret; fbo = kmalloc(sizeof(*fbo), GFP_KERNEL); if (!fbo) @@ -517,10 +516,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo, kref_init(&fbo->base.kref); fbo->base.destroy = &ttm_transfered_destroy; fbo->base.acc_size = 0; - fbo->base.resv = &fbo->base.ttm_resv; - reservation_object_init(fbo->base.resv); - ret = reservation_object_trylock(fbo->base.resv); - WARN_ON(!ret); + reservation_object_init(&fbo->base.ttm_resv); *new_obj = &fbo->base; return 0; @@ -716,8 +712,6 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, if (ret) return ret; - reservation_object_add_excl_fence(ghost_obj->resv, fence); - /** * If we're not moving to fixed memory, the TTM object * needs to stay alive. Otherwhise hang it on the ghost @@ -729,7 +723,6 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, else bo->ttm = NULL; - ttm_bo_unreserve(ghost_obj); ttm_bo_put(ghost_obj); } @@ -772,8 +765,6 @@ int ttm_bo_pipeline_move(struct ttm_buffer_object *bo, if (ret) return ret; - reservation_object_add_excl_fence(ghost_obj->resv, fence); - /** * If we're not moving to fixed memory, the TTM object * needs to stay alive. Otherwhise hang it on the ghost @@ -785,7 +776,6 @@ int ttm_bo_pipeline_move(struct ttm_buffer_object *bo, else bo->ttm = NULL; - ttm_bo_unreserve(ghost_obj); ttm_bo_put(ghost_obj); } else if (from->flags & TTM_MEMTYPE_FLAG_FIXED) { @@ -841,16 +831,10 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) if (ret) return ret; - ret = reservation_object_copy_fences(ghost->resv, bo->resv); - /* Last resort, wait for the BO to be idle when we are OOM */ - if (ret) - ttm_bo_wait(bo, false, false); - memset(&bo->mem, 0, sizeof(bo->mem)); bo->mem.mem_type = TTM_PL_SYSTEM; bo->ttm = NULL; - ttm_bo_unreserve(ghost); ttm_bo_put(ghost); return 0; -- 2.17.1