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=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 D180DC49EA6 for ; Thu, 24 Jun 2021 19:31:14 +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 99AF36120D for ; Thu, 24 Jun 2021 19:31:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 99AF36120D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E4E956ECCA; Thu, 24 Jun 2021 19:31:11 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5167C6ECCA; Thu, 24 Jun 2021 19:31:09 +0000 (UTC) IronPort-SDR: u7MmLdp/RUK4JsVQHOhRWnvhZZbP02KjtdahqLhaZFSwZOz9Yom5pzkzo/MQamsxVXWy5R4yX2 9z0jfz0dED2A== X-IronPort-AV: E=McAfee;i="6200,9189,10025"; a="293180009" X-IronPort-AV: E=Sophos;i="5.83,297,1616482800"; d="scan'208";a="293180009" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 12:31:09 -0700 IronPort-SDR: D+Yk8U6/asd+jK9lTvQ7Jref/+x7wATrvoO/8daumjZm+UKY20VZtQYax6mQgWu7uoj5n1bIP1 lC0hfLBH4x3g== X-IronPort-AV: E=Sophos;i="5.83,297,1616482800"; d="scan'208";a="487889526" Received: from mkayyal-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.243]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 12:31:07 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Thu, 24 Jun 2021 21:30:44 +0200 Message-Id: <20210624193045.5087-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624193045.5087-1-thomas.hellstrom@linux.intel.com> References: <20210624193045.5087-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/2] drm/i915/ttm: Reorganize the ttm move code somewhat X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SW4gb3JkZXIgdG8gbWFrZSB0aGUgY29kZSBhIGJpdCBtb3JlIHJlYWRhYmxlIGFuZCB0byBmYWNp bGl0YXRlCmFzeW5jIG1lbWNweSBtb3ZlcywgcmVvcmdhbml6ZSB0aGUgbW92ZSBjb2RlIGEgbGl0 dGxlLiBEZXRlcm1pbmUKYXQgYW4gZWFybHkgc3RhZ2Ugd2hldGhlciB0byBjb3B5IG9yIHRvIGNs ZWFyLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21A bGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90 dG0uYyB8IDcwICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MCBp bnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fdHRtLmMKaW5kZXggYzM5ZDk4MmM0ZmE2Li40ZTUyOWFkY2RmYzcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMKQEAgLTQzMSw2ICs0MzEsNyBAQCBpOTE1X3R0 bV9yZXNvdXJjZV9nZXRfc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIH0KIAog c3RhdGljIGludCBpOTE1X3R0bV9hY2NlbF9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCisJCQkgICAgICAgYm9vbCBjbGVhciwKIAkJCSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl ICpkc3RfbWVtLAogCQkJICAgICAgIHN0cnVjdCBzZ190YWJsZSAqZHN0X3N0KQogewpAQCAtNDQ5 LDEzICs0NTAsMTAgQEAgc3RhdGljIGludCBpOTE1X3R0bV9hY2NlbF9tb3ZlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJCXJldHVybiAtRUlOVkFMOwogCiAJZHN0X2xldmVsID0gaTkx NV90dG1fY2FjaGVfbGV2ZWwoaTkxNSwgZHN0X21lbSwgdHRtKTsKLQlpZiAoIXR0bSB8fCAhdHRt X3R0X2lzX3BvcHVsYXRlZCh0dG0pKSB7CisJaWYgKGNsZWFyKSB7CiAJCWlmIChiby0+dHlwZSA9 PSB0dG1fYm9fdHlwZV9rZXJuZWwpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlpZiAodHRtICYm ICEodHRtLT5wYWdlX2ZsYWdzICYgVFRNX1BBR0VfRkxBR19aRVJPX0FMTE9DKSkKLQkJCXJldHVy biAwOwotCiAJCWludGVsX2VuZ2luZV9wbV9nZXQoaTkxNS0+Z3QubWlncmF0ZS5jb250ZXh0LT5l bmdpbmUpOwogCQlyZXQgPSBpbnRlbF9jb250ZXh0X21pZ3JhdGVfY2xlYXIoaTkxNS0+Z3QubWln cmF0ZS5jb250ZXh0LCBOVUxMLAogCQkJCQkJICBkc3Rfc3QtPnNnbCwgZHN0X2xldmVsLApAQCAt NDg5LDI3ICs0ODcsNTMgQEAgc3RhdGljIGludCBpOTE1X3R0bV9hY2NlbF9tb3ZlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpOTE1 X3R0bV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCi0JCQkg c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCi0JCQkgc3RydWN0IHR0bV9yZXNvdXJjZSAq ZHN0X21lbSwKLQkJCSBzdHJ1Y3QgdHRtX3BsYWNlICpob3ApCitzdGF0aWMgdm9pZCBfX2k5MTVf dHRtX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBjbGVhciwKKwkJCSAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpkc3RfbWVtLAorCQkJICAgIHN0cnVjdCBzZ190YWJsZSAq ZHN0X3N0KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpOTE1X3R0bV90 b19nZW0oYm8pOwotCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqZHN0X21hbiA9Ci0JCXR0 bV9tYW5hZ2VyX3R5cGUoYm8tPmJkZXYsIGRzdF9tZW0tPm1lbV90eXBlKTsKIAlzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqZHN0X3JlZywgKnNyY19yZWc7CiAJdW5pb24gewogCQlzdHJ1Y3Qg dHRtX2ttYXBfaXRlcl90dCB0dDsKIAkJc3RydWN0IHR0bV9rbWFwX2l0ZXJfaW9tYXAgaW87CiAJ fSBfZHN0X2l0ZXIsIF9zcmNfaXRlcjsKIAlzdHJ1Y3QgdHRtX2ttYXBfaXRlciAqZHN0X2l0ZXIs ICpzcmNfaXRlcjsKLQlzdHJ1Y3Qgc2dfdGFibGUgKmRzdF9zdDsKIAlpbnQgcmV0OwogCiAJZHN0 X3JlZyA9IGk5MTVfdHRtX3JlZ2lvbihiby0+YmRldiwgZHN0X21lbS0+bWVtX3R5cGUpOwogCXNy Y19yZWcgPSBpOTE1X3R0bV9yZWdpb24oYm8tPmJkZXYsIGJvLT5yZXNvdXJjZS0+bWVtX3R5cGUp OwogCUdFTV9CVUdfT04oIWRzdF9yZWcgfHwgIXNyY19yZWcpOwogCisJcmV0ID0gaTkxNV90dG1f YWNjZWxfbW92ZShibywgY2xlYXIsIGRzdF9tZW0sIGRzdF9zdCk7CisJaWYgKHJldCkgeworCQlk c3RfaXRlciA9ICFjcHVfbWFwc19pb21lbShkc3RfbWVtKSA/CisJCQl0dG1fa21hcF9pdGVyX3R0 X2luaXQoJl9kc3RfaXRlci50dCwgYm8tPnR0bSkgOgorCQkJdHRtX2ttYXBfaXRlcl9pb21hcF9p bml0KCZfZHN0X2l0ZXIuaW8sICZkc3RfcmVnLT5pb21hcCwKKwkJCQkJCSBkc3Rfc3QsIGRzdF9y ZWctPnJlZ2lvbi5zdGFydCk7CisKKwkJc3JjX2l0ZXIgPSAhY3B1X21hcHNfaW9tZW0oYm8tPnJl c291cmNlKSA/CisJCQl0dG1fa21hcF9pdGVyX3R0X2luaXQoJl9zcmNfaXRlci50dCwgYm8tPnR0 bSkgOgorCQkJdHRtX2ttYXBfaXRlcl9pb21hcF9pbml0KCZfc3JjX2l0ZXIuaW8sICZzcmNfcmVn LT5pb21hcCwKKwkJCQkJCSBvYmotPnR0bS5jYWNoZWRfaW9fc3QsCisJCQkJCQkgc3JjX3JlZy0+ cmVnaW9uLnN0YXJ0KTsKKworCQl0dG1fbW92ZV9tZW1jcHkoYm8sIGRzdF9tZW0tPm51bV9wYWdl cywgZHN0X2l0ZXIsIHNyY19pdGVyKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgaTkxNV90dG1fbW92 ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAorCQkJIHN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAorCQkJIHN0cnVjdCB0dG1fcmVzb3VyY2UgKmRzdF9tZW0s CisJCQkgc3RydWN0IHR0bV9wbGFjZSAqaG9wKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmogPSBpOTE1X3R0bV90b19nZW0oYm8pOworCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqZHN0X21hbiA9CisJCXR0bV9tYW5hZ2VyX3R5cGUoYm8tPmJkZXYsIGRzdF9tZW0tPm1l bV90eXBlKTsKKwlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRtOworCXN0cnVjdCBzZ190YWJs ZSAqZHN0X3N0OworCWJvb2wgY2xlYXI7CisJaW50IHJldDsKKwogCS8qIFN5bmMgZm9yIG5vdy4g V2UgY291bGQgZG8gdGhlIGFjdHVhbCBjb3B5IGFzeW5jLiAqLwogCXJldCA9IHR0bV9ib193YWl0 X2N0eChibywgY3R4KTsKIAlpZiAocmV0KQpAQCAtNTI2LDkgKzU1MCw4IEBAIHN0YXRpYyBpbnQg aTkxNV90dG1fbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAog CX0KIAogCS8qIFBvcHVsYXRlIHR0bSB3aXRoIHBhZ2VzIGlmIG5lZWRlZC4gVHlwaWNhbGx5IHN5 c3RlbSBtZW1vcnkuICovCi0JaWYgKGJvLT50dG0gJiYgKGRzdF9tYW4tPnVzZV90dCB8fAotCQkJ KGJvLT50dG0tPnBhZ2VfZmxhZ3MgJiBUVE1fUEFHRV9GTEFHX1NXQVBQRUQpKSkgewotCQlyZXQg PSB0dG1fdHRfcG9wdWxhdGUoYm8tPmJkZXYsIGJvLT50dG0sIGN0eCk7CisJaWYgKHR0bSAmJiAo ZHN0X21hbi0+dXNlX3R0IHx8ICh0dG0tPnBhZ2VfZmxhZ3MgJiBUVE1fUEFHRV9GTEFHX1NXQVBQ RUQpKSkgeworCQlyZXQgPSB0dG1fdHRfcG9wdWxhdGUoYm8tPmJkZXYsIHR0bSwgY3R4KTsKIAkJ aWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpAQCAtNTM3LDIzICs1NjAsMTAgQEAgc3RhdGlj IGludCBpOTE1X3R0bV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZp Y3QsCiAJaWYgKElTX0VSUihkc3Rfc3QpKQogCQlyZXR1cm4gUFRSX0VSUihkc3Rfc3QpOwogCi0J cmV0ID0gaTkxNV90dG1fYWNjZWxfbW92ZShibywgZHN0X21lbSwgZHN0X3N0KTsKLQlpZiAocmV0 KSB7Ci0JCS8qIElmIHdlIHN0YXJ0IG1hcHBpbmcgR0dUVCwgd2UgY2FuIG5vIGxvbmdlciB1c2Ug bWFuOjp1c2VfdHQgaGVyZS4gKi8KLQkJZHN0X2l0ZXIgPSAhY3B1X21hcHNfaW9tZW0oZHN0X21l bSkgPwotCQkJdHRtX2ttYXBfaXRlcl90dF9pbml0KCZfZHN0X2l0ZXIudHQsIGJvLT50dG0pIDoK LQkJCXR0bV9rbWFwX2l0ZXJfaW9tYXBfaW5pdCgmX2RzdF9pdGVyLmlvLCAmZHN0X3JlZy0+aW9t YXAsCi0JCQkJCQkgZHN0X3N0LCBkc3RfcmVnLT5yZWdpb24uc3RhcnQpOwotCi0JCXNyY19pdGVy ID0gIWNwdV9tYXBzX2lvbWVtKGJvLT5yZXNvdXJjZSkgPwotCQkJdHRtX2ttYXBfaXRlcl90dF9p bml0KCZfc3JjX2l0ZXIudHQsIGJvLT50dG0pIDoKLQkJCXR0bV9rbWFwX2l0ZXJfaW9tYXBfaW5p dCgmX3NyY19pdGVyLmlvLCAmc3JjX3JlZy0+aW9tYXAsCi0JCQkJCQkgb2JqLT50dG0uY2FjaGVk X2lvX3N0LAotCQkJCQkJIHNyY19yZWctPnJlZ2lvbi5zdGFydCk7CisJY2xlYXIgPSAhY3B1X21h cHNfaW9tZW0oYm8tPnJlc291cmNlKSAmJiAoIXR0bSB8fCAhdHRtX3R0X2lzX3BvcHVsYXRlZCh0 dG0pKTsKKwlpZiAoIShjbGVhciAmJiB0dG0gJiYgISh0dG0tPnBhZ2VfZmxhZ3MgJiBUVE1fUEFH RV9GTEFHX1pFUk9fQUxMT0MpKSkKKwkJX19pOTE1X3R0bV9tb3ZlKGJvLCBjbGVhciwgZHN0X21l bSwgZHN0X3N0KTsKIAotCQl0dG1fbW92ZV9tZW1jcHkoYm8sIGRzdF9tZW0tPm51bV9wYWdlcywg ZHN0X2l0ZXIsIHNyY19pdGVyKTsKLQl9Ci0JLyogQmVsb3cgZHN0X21lbSBiZWNvbWVzIGJvLT5y ZXNvdXJjZS4gKi8KIAl0dG1fYm9fbW92ZV9zeW5jX2NsZWFudXAoYm8sIGRzdF9tZW0pOwogCWk5 MTVfdHRtX2FkanVzdF9kb21haW5zX2FmdGVyX21vdmUob2JqKTsKIAlpOTE1X3R0bV9mcmVlX2Nh Y2hlZF9pb19zdChvYmopOwotLSAKMi4zMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK 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=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 2BD33C49EA7 for ; Thu, 24 Jun 2021 19:31:17 +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 E8E9E613CE for ; Thu, 24 Jun 2021 19:31:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E8E9E613CE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com 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 DF30A6ECCC; Thu, 24 Jun 2021 19:31:14 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5167C6ECCA; Thu, 24 Jun 2021 19:31:09 +0000 (UTC) IronPort-SDR: u7MmLdp/RUK4JsVQHOhRWnvhZZbP02KjtdahqLhaZFSwZOz9Yom5pzkzo/MQamsxVXWy5R4yX2 9z0jfz0dED2A== X-IronPort-AV: E=McAfee;i="6200,9189,10025"; a="293180009" X-IronPort-AV: E=Sophos;i="5.83,297,1616482800"; d="scan'208";a="293180009" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 12:31:09 -0700 IronPort-SDR: D+Yk8U6/asd+jK9lTvQ7Jref/+x7wATrvoO/8daumjZm+UKY20VZtQYax6mQgWu7uoj5n1bIP1 lC0hfLBH4x3g== X-IronPort-AV: E=Sophos;i="5.83,297,1616482800"; d="scan'208";a="487889526" Received: from mkayyal-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.243]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 12:31:07 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: [PATCH 1/2] drm/i915/ttm: Reorganize the ttm move code somewhat Date: Thu, 24 Jun 2021 21:30:44 +0200 Message-Id: <20210624193045.5087-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624193045.5087-1-thomas.hellstrom@linux.intel.com> References: <20210624193045.5087-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" In order to make the code a bit more readable and to facilitate async memcpy moves, reorganize the move code a little. Determine at an early stage whether to copy or to clear. Signed-off-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 70 ++++++++++++++----------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index c39d982c4fa6..4e529adcdfc7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -431,6 +431,7 @@ i915_ttm_resource_get_st(struct drm_i915_gem_object *obj, } static int i915_ttm_accel_move(struct ttm_buffer_object *bo, + bool clear, struct ttm_resource *dst_mem, struct sg_table *dst_st) { @@ -449,13 +450,10 @@ static int i915_ttm_accel_move(struct ttm_buffer_object *bo, return -EINVAL; dst_level = i915_ttm_cache_level(i915, dst_mem, ttm); - if (!ttm || !ttm_tt_is_populated(ttm)) { + if (clear) { if (bo->type == ttm_bo_type_kernel) return -EINVAL; - if (ttm && !(ttm->page_flags & TTM_PAGE_FLAG_ZERO_ALLOC)) - return 0; - intel_engine_pm_get(i915->gt.migrate.context->engine); ret = intel_context_migrate_clear(i915->gt.migrate.context, NULL, dst_st->sgl, dst_level, @@ -489,27 +487,53 @@ static int i915_ttm_accel_move(struct ttm_buffer_object *bo, return ret; } -static int i915_ttm_move(struct ttm_buffer_object *bo, bool evict, - struct ttm_operation_ctx *ctx, - struct ttm_resource *dst_mem, - struct ttm_place *hop) +static void __i915_ttm_move(struct ttm_buffer_object *bo, bool clear, + struct ttm_resource *dst_mem, + struct sg_table *dst_st) { struct drm_i915_gem_object *obj = i915_ttm_to_gem(bo); - struct ttm_resource_manager *dst_man = - ttm_manager_type(bo->bdev, dst_mem->mem_type); struct intel_memory_region *dst_reg, *src_reg; union { struct ttm_kmap_iter_tt tt; struct ttm_kmap_iter_iomap io; } _dst_iter, _src_iter; struct ttm_kmap_iter *dst_iter, *src_iter; - struct sg_table *dst_st; int ret; dst_reg = i915_ttm_region(bo->bdev, dst_mem->mem_type); src_reg = i915_ttm_region(bo->bdev, bo->resource->mem_type); GEM_BUG_ON(!dst_reg || !src_reg); + ret = i915_ttm_accel_move(bo, clear, dst_mem, dst_st); + if (ret) { + dst_iter = !cpu_maps_iomem(dst_mem) ? + ttm_kmap_iter_tt_init(&_dst_iter.tt, bo->ttm) : + ttm_kmap_iter_iomap_init(&_dst_iter.io, &dst_reg->iomap, + dst_st, dst_reg->region.start); + + src_iter = !cpu_maps_iomem(bo->resource) ? + ttm_kmap_iter_tt_init(&_src_iter.tt, bo->ttm) : + ttm_kmap_iter_iomap_init(&_src_iter.io, &src_reg->iomap, + obj->ttm.cached_io_st, + src_reg->region.start); + + ttm_move_memcpy(bo, dst_mem->num_pages, dst_iter, src_iter); + } +} + +static int i915_ttm_move(struct ttm_buffer_object *bo, bool evict, + struct ttm_operation_ctx *ctx, + struct ttm_resource *dst_mem, + struct ttm_place *hop) +{ + struct drm_i915_gem_object *obj = i915_ttm_to_gem(bo); + struct ttm_resource_manager *dst_man = + ttm_manager_type(bo->bdev, dst_mem->mem_type); + struct ttm_tt *ttm = bo->ttm; + struct sg_table *dst_st; + bool clear; + int ret; + /* Sync for now. We could do the actual copy async. */ ret = ttm_bo_wait_ctx(bo, ctx); if (ret) @@ -526,9 +550,8 @@ static int i915_ttm_move(struct ttm_buffer_object *bo, bool evict, } /* Populate ttm with pages if needed. Typically system memory. */ - if (bo->ttm && (dst_man->use_tt || - (bo->ttm->page_flags & TTM_PAGE_FLAG_SWAPPED))) { - ret = ttm_tt_populate(bo->bdev, bo->ttm, ctx); + if (ttm && (dst_man->use_tt || (ttm->page_flags & TTM_PAGE_FLAG_SWAPPED))) { + ret = ttm_tt_populate(bo->bdev, ttm, ctx); if (ret) return ret; } @@ -537,23 +560,10 @@ static int i915_ttm_move(struct ttm_buffer_object *bo, bool evict, if (IS_ERR(dst_st)) return PTR_ERR(dst_st); - ret = i915_ttm_accel_move(bo, dst_mem, dst_st); - if (ret) { - /* If we start mapping GGTT, we can no longer use man::use_tt here. */ - dst_iter = !cpu_maps_iomem(dst_mem) ? - ttm_kmap_iter_tt_init(&_dst_iter.tt, bo->ttm) : - ttm_kmap_iter_iomap_init(&_dst_iter.io, &dst_reg->iomap, - dst_st, dst_reg->region.start); - - src_iter = !cpu_maps_iomem(bo->resource) ? - ttm_kmap_iter_tt_init(&_src_iter.tt, bo->ttm) : - ttm_kmap_iter_iomap_init(&_src_iter.io, &src_reg->iomap, - obj->ttm.cached_io_st, - src_reg->region.start); + clear = !cpu_maps_iomem(bo->resource) && (!ttm || !ttm_tt_is_populated(ttm)); + if (!(clear && ttm && !(ttm->page_flags & TTM_PAGE_FLAG_ZERO_ALLOC))) + __i915_ttm_move(bo, clear, dst_mem, dst_st); - ttm_move_memcpy(bo, dst_mem->num_pages, dst_iter, src_iter); - } - /* Below dst_mem becomes bo->resource. */ ttm_bo_move_sync_cleanup(bo, dst_mem); i915_ttm_adjust_domains_after_move(obj); i915_ttm_free_cached_io_st(obj); -- 2.31.1