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=-9.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham 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 1F407C2D0BF for ; Tue, 10 Dec 2019 21:12:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E87D82465B for ; Tue, 10 Dec 2019 21:12:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="1CyRwNEC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E87D82465B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 76B1E6E956; Tue, 10 Dec 2019 21:12:35 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 362316E950 for ; Tue, 10 Dec 2019 21:12:23 +0000 (UTC) Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 31E1724679; Tue, 10 Dec 2019 21:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576011861; bh=G3pxgIYne46zikRD4f0dDWJlvjJHvRooIorjQRkUWwY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1CyRwNEC0MH3udFRIzaIsCPy/bmeyAgnQYwENOJ68DWc+b9pYcsHXPgdP2n4pKOiJ 2iMRld30xxreONK4bbXhnDnzvCuq8BWxEqrCqdK/kY5sqZdMZKt/MsNmJs/9WKQYeF MmcQkTSd25X4xJddrzxX0Hvy2yikMiopuXlMsHjc= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 015/350] drm/ttm: return -EBUSY on pipelining with no_gpu_wait (v2) Date: Tue, 10 Dec 2019 15:58:27 -0500 Message-Id: <20191210210402.8367-15-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191210210402.8367-1-sashal@kernel.org> References: <20191210210402.8367-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Deucher , Sasha Levin , Felix Kuehling , =?UTF-8?q?Christian=20K=C3=B6nig?= , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKWyBVcHN0 cmVhbSBjb21taXQgMzA4NGNmNDZjZjgxMTA4MjZhNDJkZThjOGVmMzBlOGZhNDg5NzRjMiBdCgpT ZXR0aW5nIHRoZSBub19ncHVfd2FpdCBmbGFnIG1lYW5zIHRoYXQgdGhlIGFsbG9jYXRlIEJPIG11 c3QgYmUgYXZhaWxhYmxlCmltbWVkaWF0ZWx5IGFuZCB3ZSBjYW4ndCB3YWl0IGZvciBhbnkgR1BV IG9wZXJhdGlvbiB0byBmaW5pc2guCgp2Mjogc3F1YXNoIGluIG1lbSBsZWFrIGZpeCwgcmViYXNl CgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+CkFja2VkLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KU2ln bmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYyB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jCmluZGV4IDk4ODE5NDYyZjAyNWYuLmYwNzgwMzY5OTgwOTIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fYm8uYwpAQCAtOTI2LDcgKzkyNiw4IEBAIEVYUE9SVF9TWU1CT0wodHRtX2JvX21l bV9wdXQpOwogICovCiBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h biwKLQkJCQkgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCisJCQkJIHN0cnVjdCB0dG1fbWVtX3Jl ZyAqbWVtLAorCQkJCSBib29sIG5vX3dhaXRfZ3B1KQogewogCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOwogCWludCByZXQ7CkBAIC05MzUsMTkgKzkzNiwyMiBAQCBzdGF0aWMgaW50IHR0bV9ib19h ZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCWZlbmNlID0gZG1h X2ZlbmNlX2dldChtYW4tPm1vdmUpOwogCXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAK LQlpZiAoZmVuY2UpIHsKLQkJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShiby0+YmFzZS5yZXN2 LCBmZW5jZSk7CisJaWYgKCFmZW5jZSkKKwkJcmV0dXJuIDA7CiAKLQkJcmV0ID0gZG1hX3Jlc3Zf cmVzZXJ2ZV9zaGFyZWQoYm8tPmJhc2UucmVzdiwgMSk7Ci0JCWlmICh1bmxpa2VseShyZXQpKSB7 Ci0JCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlpZiAobm9f d2FpdF9ncHUpCisJCXJldHVybiAtRUJVU1k7CisKKwlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNl KGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAotCQlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwot CQliby0+bW92aW5nID0gZmVuY2U7CisJcmV0ID0gZG1hX3Jlc3ZfcmVzZXJ2ZV9zaGFyZWQoYm8t PmJhc2UucmVzdiwgMSk7CisJaWYgKHVubGlrZWx5KHJldCkpIHsKKwkJZG1hX2ZlbmNlX3B1dChm ZW5jZSk7CisJCXJldHVybiByZXQ7CiAJfQogCisJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsK Kwliby0+bW92aW5nID0gZmVuY2U7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTk3OCw3ICs5ODIsNyBA QCBzdGF0aWMgaW50IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKIAkJCXJldHVybiByZXQ7CiAJfSB3aGlsZSAoMSk7CiAKLQlyZXR1cm4gdHRtX2Jv X2FkZF9tb3ZlX2ZlbmNlKGJvLCBtYW4sIG1lbSk7CisJcmV0dXJuIHR0bV9ib19hZGRfbW92ZV9m ZW5jZShibywgbWFuLCBtZW0sIGN0eC0+bm9fd2FpdF9ncHUpOwogfQogCiBzdGF0aWMgdWludDMy X3QgdHRtX2JvX3NlbGVjdF9jYWNoaW5nKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu LApAQCAtMTEyMCwxNCArMTEyNCwxOCBAQCBpbnQgdHRtX2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAodW5saWtlbHkocmV0KSkKIAkJCWdvdG8gZXJyb3I7 CiAKLQkJaWYgKG1lbS0+bW1fbm9kZSkgewotCQkJcmV0ID0gdHRtX2JvX2FkZF9tb3ZlX2ZlbmNl KGJvLCBtYW4sIG1lbSk7Ci0JCQlpZiAodW5saWtlbHkocmV0KSkgewotCQkJCSgqbWFuLT5mdW5j LT5wdXRfbm9kZSkobWFuLCBtZW0pOwotCQkJCWdvdG8gZXJyb3I7Ci0JCQl9Ci0JCQlyZXR1cm4g MDsKKwkJaWYgKCFtZW0tPm1tX25vZGUpCisJCQljb250aW51ZTsKKworCQlyZXQgPSB0dG1fYm9f YWRkX21vdmVfZmVuY2UoYm8sIG1hbiwgbWVtLCBjdHgtPm5vX3dhaXRfZ3B1KTsKKwkJaWYgKHVu bGlrZWx5KHJldCkpIHsKKwkJCSgqbWFuLT5mdW5jLT5wdXRfbm9kZSkobWFuLCBtZW0pOworCQkJ aWYgKHJldCA9PSAtRUJVU1kpCisJCQkJY29udGludWU7CisKKwkJCWdvdG8gZXJyb3I7CiAJCX0K KwkJcmV0dXJuIDA7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IHBsYWNlbWVudC0+bnVtX2J1c3lf cGxhY2VtZW50OyArK2kpIHsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg== 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=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham 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 00F0EC43603 for ; Tue, 10 Dec 2019 21:06:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C6BF020652 for ; Tue, 10 Dec 2019 21:06:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576011997; bh=G3pxgIYne46zikRD4f0dDWJlvjJHvRooIorjQRkUWwY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=b43OV8hnmEhxJNDTfXWKt67J2atyOtuWj1l4aIT+A0nOjplRa7ZxJdz5GYidfUTjZ 2y71s+ARSF/fJvdMVuFcEILy52OpnZdmDuxMVXRlnB/a7wZZ5nst3bfWYIzakylDZF xTlfzuSigAy0e0T+UXsTOI0HVrMHt8OV9ro2KQEY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726831AbfLJVGg (ORCPT ); Tue, 10 Dec 2019 16:06:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:49266 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727193AbfLJVEW (ORCPT ); Tue, 10 Dec 2019 16:04:22 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 31E1724679; Tue, 10 Dec 2019 21:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576011861; bh=G3pxgIYne46zikRD4f0dDWJlvjJHvRooIorjQRkUWwY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1CyRwNEC0MH3udFRIzaIsCPy/bmeyAgnQYwENOJ68DWc+b9pYcsHXPgdP2n4pKOiJ 2iMRld30xxreONK4bbXhnDnzvCuq8BWxEqrCqdK/kY5sqZdMZKt/MsNmJs/9WKQYeF MmcQkTSd25X4xJddrzxX0Hvy2yikMiopuXlMsHjc= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , Felix Kuehling , Alex Deucher , Sasha Levin , dri-devel@lists.freedesktop.org Subject: [PATCH AUTOSEL 5.4 015/350] drm/ttm: return -EBUSY on pipelining with no_gpu_wait (v2) Date: Tue, 10 Dec 2019 15:58:27 -0500 Message-Id: <20191210210402.8367-15-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191210210402.8367-1-sashal@kernel.org> References: <20191210210402.8367-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian König [ Upstream commit 3084cf46cf8110826a42de8c8ef30e8fa48974c2 ] Setting the no_gpu_wait flag means that the allocate BO must be available immediately and we can't wait for any GPU operation to finish. v2: squash in mem leak fix, rebase Signed-off-by: Christian König Acked-by: Felix Kuehling Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/ttm/ttm_bo.c | 44 +++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 98819462f025f..f078036998092 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -926,7 +926,8 @@ EXPORT_SYMBOL(ttm_bo_mem_put); */ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, struct ttm_mem_type_manager *man, - struct ttm_mem_reg *mem) + struct ttm_mem_reg *mem, + bool no_wait_gpu) { struct dma_fence *fence; int ret; @@ -935,19 +936,22 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, fence = dma_fence_get(man->move); spin_unlock(&man->move_lock); - if (fence) { - dma_resv_add_shared_fence(bo->base.resv, fence); + if (!fence) + return 0; - ret = dma_resv_reserve_shared(bo->base.resv, 1); - if (unlikely(ret)) { - dma_fence_put(fence); - return ret; - } + if (no_wait_gpu) + return -EBUSY; + + dma_resv_add_shared_fence(bo->base.resv, fence); - dma_fence_put(bo->moving); - bo->moving = fence; + ret = dma_resv_reserve_shared(bo->base.resv, 1); + if (unlikely(ret)) { + dma_fence_put(fence); + return ret; } + dma_fence_put(bo->moving); + bo->moving = fence; return 0; } @@ -978,7 +982,7 @@ static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo, return ret; } while (1); - return ttm_bo_add_move_fence(bo, man, mem); + return ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu); } static uint32_t ttm_bo_select_caching(struct ttm_mem_type_manager *man, @@ -1120,14 +1124,18 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, if (unlikely(ret)) goto error; - if (mem->mm_node) { - ret = ttm_bo_add_move_fence(bo, man, mem); - if (unlikely(ret)) { - (*man->func->put_node)(man, mem); - goto error; - } - return 0; + if (!mem->mm_node) + continue; + + ret = ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu); + if (unlikely(ret)) { + (*man->func->put_node)(man, mem); + if (ret == -EBUSY) + continue; + + goto error; } + return 0; } for (i = 0; i < placement->num_busy_placement; ++i) { -- 2.20.1