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.8 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 1EEE0C4743E for ; Tue, 8 Jun 2021 09:29: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 EB4BE61263 for ; Tue, 8 Jun 2021 09:29:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB4BE61263 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 9A39B6EB5F; Tue, 8 Jun 2021 09:29:08 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id F068C6EB5F; Tue, 8 Jun 2021 09:29:05 +0000 (UTC) IronPort-SDR: ujSUgvMq+0OQpZofaLvXvSYlmogDJmM1k3tcF5iUee9gRgL5S/ctbLVpGKCdcP/11HAGE7uT/l E/18h/VJgdAA== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="226150951" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="226150951" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:29:05 -0700 IronPort-SDR: +MEZaF26X/9BamTNsBW6+FtSz3ZVVPUnAkB7MoS7rkq7LYeUxap/koG22eS6ZvK0CGR1FDVHy/ grPkwQwfSA0Q== X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="551544373" Received: from mkayyal-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.115]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:29:03 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Tue, 8 Jun 2021 11:28:39 +0200 Message-Id: <20210608092846.64198-3-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210608092846.64198-1-thomas.hellstrom@linux.intel.com> References: <20210608092846.64198-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 2/9] drm/i915: Break out dma_resv ww locking utilities to separate files 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: matthew.auld@intel.com, =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QXMgd2UncmUgYWJvdXQgdG8gYWRkIG1vcmUgd3ctcmVsYXRlZCBmdW5jdGlvbmFsaXR5LApicmVh ayBvdXQgdGhlIGRtYV9yZXN2IHd3IGxvY2tpbmcgdXRpbGl0aWVzIHRvIHRoZWlyIG93biBmaWxl cwoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGlu dXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAg ICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0Lmgg IHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3RhdGUuaCB8ICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgfCA1NiAtLS0t LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmggICAgICAgICAg ICAgfCAxMiAtLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV93dy5jICAgICAgICAg IHwgNjMgKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV93dy5oICAgICAgICAgIHwgMjEgKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRp b25zKCspLCA2OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV93dy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fd3cuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggNGYyMmNhYzFjNDli Li5lYThlZTRiM2UwMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC00NSw2ICs0NSw3IEBAIGk5 MTUteSArPSBpOTE1X2Rydi5vIFwKIAkgIGk5MTVfc3dpdGNoZXJvby5vIFwKIAkgIGk5MTVfc3lz ZnMubyBcCiAJICBpOTE1X3V0aWxzLm8gXAorCSAgaTkxNV9nZW1fd3cubyBcCiAJICBpbnRlbF9k ZXZpY2VfaW5mby5vIFwKIAkgIGludGVsX2RyYW0ubyBcCiAJICBpbnRlbF9tZW1vcnlfcmVnaW9u Lm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCmluZGV4IDFm YWZjYzg5ZWNlZS4uNzg5NTI5YjQyNGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5oCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAiaTkxNV9nZW1fb2Jq ZWN0X3R5cGVzLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fZ3R0LmgiCiAjaW5jbHVkZSAiaTkxNV92 bWFfdHlwZXMuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV93dy5oIgogCiAvKgogICogWFhYOiBUaGVy ZSBpcyBhIHByZXZhbGVuY2Ugb2YgdGhlIGFzc3VtcHRpb24gdGhhdCB3ZSBmaXQgdGhlCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZW5kZXJzdGF0ZS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3RhdGUuaAppbmRleCA0OGYwMDkyMDM5 MTcuLjRkYTRjNTIzNGVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfcmVuZGVyc3RhdGUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZW5k ZXJzdGF0ZS5oCkBAIC04LDYgKzgsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNp bmNsdWRlICJpOTE1X2dlbS5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX3d3LmgiCiAKIHN0cnVjdCBp OTE1X3JlcXVlc3Q7CiBzdHJ1Y3QgaW50ZWxfY29udGV4dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CmluZGV4IDNmMDYwYWI1OGM1ZC4uY2U2NGQzMDA1Y2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKQEAgLTEyMDQsNjIgKzEyMDQsNiBAQCBpbnQgaTkxNV9nZW1fb3BlbihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGRybV9maWxlICpmaWxlKQogCXJldHVybiByZXQ7CiB9 CiAKLXZvaWQgaTkxNV9nZW1fd3dfY3R4X2luaXQoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cs IGJvb2wgaW50cikKLXsKLQl3d19hY3F1aXJlX2luaXQoJnd3LT5jdHgsICZyZXNlcnZhdGlvbl93 d19jbGFzcyk7Ci0JSU5JVF9MSVNUX0hFQUQoJnd3LT5vYmpfbGlzdCk7Ci0Jd3ctPmludHIgPSBp bnRyOwotCXd3LT5jb250ZW5kZWQgPSBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X2dlbV93 d19jdHhfdW5sb2NrX2FsbChzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dykKLXsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCi0Jd2hpbGUgKChvYmogPSBsaXN0X2ZpcnN0X2Vu dHJ5X29yX251bGwoJnd3LT5vYmpfbGlzdCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QsIG9i al9saW5rKSkpIHsKLQkJbGlzdF9kZWwoJm9iai0+b2JqX2xpbmspOwotCQlpOTE1X2dlbV9vYmpl Y3RfdW5sb2NrKG9iaik7Ci0JCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLQl9Ci19Ci0KLXZv aWQgaTkxNV9nZW1fd3dfdW5sb2NrX3NpbmdsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQotewotCWxpc3RfZGVsKCZvYmotPm9ial9saW5rKTsKLQlpOTE1X2dlbV9vYmplY3RfdW5s b2NrKG9iaik7Ci0JaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotfQotCi12b2lkIGk5MTVfZ2Vt X3d3X2N0eF9maW5pKHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3KQotewotCWk5MTVfZ2VtX3d3 X2N0eF91bmxvY2tfYWxsKHd3KTsKLQlXQVJOX09OKHd3LT5jb250ZW5kZWQpOwotCXd3X2FjcXVp cmVfZmluaSgmd3ctPmN0eCk7Ci19Ci0KLWludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fd3dfY3R4 X2JhY2tvZmYoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCi17Ci0JaW50IHJldCA9IDA7Ci0K LQlpZiAoV0FSTl9PTighd3ctPmNvbnRlbmRlZCkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaTkx NV9nZW1fd3dfY3R4X3VubG9ja19hbGwod3cpOwotCWlmICh3dy0+aW50cikKLQkJcmV0ID0gZG1h X3Jlc3ZfbG9ja19zbG93X2ludGVycnVwdGlibGUod3ctPmNvbnRlbmRlZC0+YmFzZS5yZXN2LCAm d3ctPmN0eCk7Ci0JZWxzZQotCQlkbWFfcmVzdl9sb2NrX3Nsb3cod3ctPmNvbnRlbmRlZC0+YmFz ZS5yZXN2LCAmd3ctPmN0eCk7Ci0KLQlpZiAoIXJldCkKLQkJbGlzdF9hZGRfdGFpbCgmd3ctPmNv bnRlbmRlZC0+b2JqX2xpbmssICZ3dy0+b2JqX2xpc3QpOwotCWVsc2UKLQkJaTkxNV9nZW1fb2Jq ZWN0X3B1dCh3dy0+Y29udGVuZGVkKTsKLQotCXd3LT5jb250ZW5kZWQgPSBOVUxMOwotCi0JcmV0 dXJuIHJldDsKLX0KLQogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQog I2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyIKICNpbmNsdWRlICJzZWxmdGVz dHMvaTkxNV9nZW0uYyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCmluZGV4IDQ0MGMzNWYxYWJjOS4u ZDA3NTJlNTU1M2RiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgKQEAgLTEyMywxNiArMTIzLDQg QEAgc3RhdGljIGlubGluZSBib29sIF9fdGFza2xldF9pc19zY2hlZHVsZWQoc3RydWN0IHRhc2ts ZXRfc3RydWN0ICp0KQogCXJldHVybiB0ZXN0X2JpdChUQVNLTEVUX1NUQVRFX1NDSEVELCAmdC0+ c3RhdGUpOwogfQogCi1zdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4IHsKLQlzdHJ1Y3Qgd3dfYWNxdWly ZV9jdHggY3R4OwotCXN0cnVjdCBsaXN0X2hlYWQgb2JqX2xpc3Q7Ci0JYm9vbCBpbnRyOwotCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjb250ZW5kZWQ7Ci19OwotCi12b2lkIGk5MTVfZ2Vt X3d3X2N0eF9pbml0KHN0cnVjdCBpOTE1X2dlbV93d19jdHggKmN0eCwgYm9vbCBpbnRyKTsKLXZv aWQgaTkxNV9nZW1fd3dfY3R4X2Zpbmkoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqY3R4KTsKLWlu dCBfX211c3RfY2hlY2sgaTkxNV9nZW1fd3dfY3R4X2JhY2tvZmYoc3RydWN0IGk5MTVfZ2VtX3d3 X2N0eCAqY3R4KTsKLXZvaWQgaTkxNV9nZW1fd3dfdW5sb2NrX3NpbmdsZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKTsKLQogI2VuZGlmIC8qIF9fSTkxNV9HRU1fSF9fICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV93dy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fd3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjNmNmZmMTM5NDc4ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3d3LmMKQEAgLTAsMCArMSw2MyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisg Ki8KKyNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgorI2luY2x1ZGUgImk5MTVfZ2VtX3d3Lmgi CisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5oIgorCit2b2lkIGk5MTVfZ2VtX3d3X2N0 eF9pbml0KHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3LCBib29sIGludHIpCit7CisJd3dfYWNx dWlyZV9pbml0KCZ3dy0+Y3R4LCAmcmVzZXJ2YXRpb25fd3dfY2xhc3MpOworCUlOSVRfTElTVF9I RUFEKCZ3dy0+b2JqX2xpc3QpOworCXd3LT5pbnRyID0gaW50cjsKKwl3dy0+Y29udGVuZGVkID0g TlVMTDsKK30KKworc3RhdGljIHZvaWQgaTkxNV9nZW1fd3dfY3R4X3VubG9ja19hbGwoc3RydWN0 IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i ajsKKworCXdoaWxlICgob2JqID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZ3dy0+b2JqX2xp c3QsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0LCBvYmpfbGluaykpKSB7CisJCWxpc3RfZGVs KCZvYmotPm9ial9saW5rKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOworCQlpOTE1 X2dlbV9vYmplY3RfcHV0KG9iaik7CisJfQorfQorCit2b2lkIGk5MTVfZ2VtX3d3X3VubG9ja19z aW5nbGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlsaXN0X2RlbCgmb2Jq LT5vYmpfbGluayk7CisJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOworCWk5MTVfZ2VtX29i amVjdF9wdXQob2JqKTsKK30KKwordm9pZCBpOTE1X2dlbV93d19jdHhfZmluaShzdHJ1Y3QgaTkx NV9nZW1fd3dfY3R4ICp3dykKK3sKKwlpOTE1X2dlbV93d19jdHhfdW5sb2NrX2FsbCh3dyk7CisJ V0FSTl9PTih3dy0+Y29udGVuZGVkKTsKKwl3d19hY3F1aXJlX2ZpbmkoJnd3LT5jdHgpOworfQor CitpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3d3X2N0eF9iYWNrb2ZmKHN0cnVjdCBpOTE1X2dl bV93d19jdHggKnd3KQoreworCWludCByZXQgPSAwOworCisJaWYgKFdBUk5fT04oIXd3LT5jb250 ZW5kZWQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWk5MTVfZ2VtX3d3X2N0eF91bmxvY2tfYWxs KHd3KTsKKwlpZiAod3ctPmludHIpCisJCXJldCA9IGRtYV9yZXN2X2xvY2tfc2xvd19pbnRlcnJ1 cHRpYmxlKHd3LT5jb250ZW5kZWQtPmJhc2UucmVzdiwgJnd3LT5jdHgpOworCWVsc2UKKwkJZG1h X3Jlc3ZfbG9ja19zbG93KHd3LT5jb250ZW5kZWQtPmJhc2UucmVzdiwgJnd3LT5jdHgpOworCisJ aWYgKCFyZXQpCisJCWxpc3RfYWRkX3RhaWwoJnd3LT5jb250ZW5kZWQtPm9ial9saW5rLCAmd3ct Pm9ial9saXN0KTsKKwllbHNlCisJCWk5MTVfZ2VtX29iamVjdF9wdXQod3ctPmNvbnRlbmRlZCk7 CisKKwl3dy0+Y29udGVuZGVkID0gTlVMTDsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV93dy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fd3cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmYyZDg3NjllNDExOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3d3LmgKQEAgLTAsMCArMSwyMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8K KyNpZm5kZWYgX19JOTE1X0dFTV9XV19IX18KKyNkZWZpbmUgX19JOTE1X0dFTV9XV19IX18KKwor I2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisKK3N0cnVjdCBpOTE1X2dlbV93d19jdHggeworCXN0 cnVjdCB3d19hY3F1aXJlX2N0eCBjdHg7CisJc3RydWN0IGxpc3RfaGVhZCBvYmpfbGlzdDsKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY29udGVuZGVkOworCWJvb2wgaW50cjsKK307CisK K3ZvaWQgaTkxNV9nZW1fd3dfY3R4X2luaXQoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqY3R4LCBi b29sIGludHIpOwordm9pZCBpOTE1X2dlbV93d19jdHhfZmluaShzdHJ1Y3QgaTkxNV9nZW1fd3df Y3R4ICpjdHgpOworaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV93d19jdHhfYmFja29mZihzdHJ1 Y3QgaTkxNV9nZW1fd3dfY3R4ICpjdHgpOwordm9pZCBpOTE1X2dlbV93d191bmxvY2tfc2luZ2xl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOworI2VuZGlmCi0tIAoyLjMxLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= 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.8 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 1BEFDC47082 for ; Tue, 8 Jun 2021 09:29:12 +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 D97F36124C for ; Tue, 8 Jun 2021 09:29:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D97F36124C 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 B0F096EB63; Tue, 8 Jun 2021 09:29:06 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id F068C6EB5F; Tue, 8 Jun 2021 09:29:05 +0000 (UTC) IronPort-SDR: ujSUgvMq+0OQpZofaLvXvSYlmogDJmM1k3tcF5iUee9gRgL5S/ctbLVpGKCdcP/11HAGE7uT/l E/18h/VJgdAA== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="226150951" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="226150951" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:29:05 -0700 IronPort-SDR: +MEZaF26X/9BamTNsBW6+FtSz3ZVVPUnAkB7MoS7rkq7LYeUxap/koG22eS6ZvK0CGR1FDVHy/ grPkwQwfSA0Q== X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="551544373" Received: from mkayyal-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.115]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:29:03 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: [PATCH 2/9] drm/i915: Break out dma_resv ww locking utilities to separate files Date: Tue, 8 Jun 2021 11:28:39 +0200 Message-Id: <20210608092846.64198-3-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210608092846.64198-1-thomas.hellstrom@linux.intel.com> References: <20210608092846.64198-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: matthew.auld@intel.com, =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" As we're about to add more ww-related functionality, break out the dma_resv ww locking utilities to their own files Signed-off-by: Thomas Hellström --- drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/gem/i915_gem_object.h | 1 + drivers/gpu/drm/i915/gt/intel_renderstate.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 56 ------------------ drivers/gpu/drm/i915/i915_gem.h | 12 ---- drivers/gpu/drm/i915/i915_gem_ww.c | 63 +++++++++++++++++++++ drivers/gpu/drm/i915/i915_gem_ww.h | 21 +++++++ 7 files changed, 87 insertions(+), 68 deletions(-) create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.c create mode 100644 drivers/gpu/drm/i915/i915_gem_ww.h diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 4f22cac1c49b..ea8ee4b3e018 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -45,6 +45,7 @@ i915-y += i915_drv.o \ i915_switcheroo.o \ i915_sysfs.o \ i915_utils.o \ + i915_gem_ww.o \ intel_device_info.o \ intel_dram.o \ intel_memory_region.o \ diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index 1fafcc89ecee..789529b424c1 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -15,6 +15,7 @@ #include "i915_gem_object_types.h" #include "i915_gem_gtt.h" #include "i915_vma_types.h" +#include "i915_gem_ww.h" /* * XXX: There is a prevalence of the assumption that we fit the diff --git a/drivers/gpu/drm/i915/gt/intel_renderstate.h b/drivers/gpu/drm/i915/gt/intel_renderstate.h index 48f009203917..4da4c5234ef0 100644 --- a/drivers/gpu/drm/i915/gt/intel_renderstate.h +++ b/drivers/gpu/drm/i915/gt/intel_renderstate.h @@ -8,6 +8,7 @@ #include #include "i915_gem.h" +#include "i915_gem_ww.h" struct i915_request; struct intel_context; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 3f060ab58c5d..ce64d3005cf2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1204,62 +1204,6 @@ int i915_gem_open(struct drm_i915_private *i915, struct drm_file *file) return ret; } -void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ww, bool intr) -{ - ww_acquire_init(&ww->ctx, &reservation_ww_class); - INIT_LIST_HEAD(&ww->obj_list); - ww->intr = intr; - ww->contended = NULL; -} - -static void i915_gem_ww_ctx_unlock_all(struct i915_gem_ww_ctx *ww) -{ - struct drm_i915_gem_object *obj; - - while ((obj = list_first_entry_or_null(&ww->obj_list, struct drm_i915_gem_object, obj_link))) { - list_del(&obj->obj_link); - i915_gem_object_unlock(obj); - i915_gem_object_put(obj); - } -} - -void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj) -{ - list_del(&obj->obj_link); - i915_gem_object_unlock(obj); - i915_gem_object_put(obj); -} - -void i915_gem_ww_ctx_fini(struct i915_gem_ww_ctx *ww) -{ - i915_gem_ww_ctx_unlock_all(ww); - WARN_ON(ww->contended); - ww_acquire_fini(&ww->ctx); -} - -int __must_check i915_gem_ww_ctx_backoff(struct i915_gem_ww_ctx *ww) -{ - int ret = 0; - - if (WARN_ON(!ww->contended)) - return -EINVAL; - - i915_gem_ww_ctx_unlock_all(ww); - if (ww->intr) - ret = dma_resv_lock_slow_interruptible(ww->contended->base.resv, &ww->ctx); - else - dma_resv_lock_slow(ww->contended->base.resv, &ww->ctx); - - if (!ret) - list_add_tail(&ww->contended->obj_link, &ww->obj_list); - else - i915_gem_object_put(ww->contended); - - ww->contended = NULL; - - return ret; -} - #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST) #include "selftests/mock_gem_device.c" #include "selftests/i915_gem.c" diff --git a/drivers/gpu/drm/i915/i915_gem.h b/drivers/gpu/drm/i915/i915_gem.h index 440c35f1abc9..d0752e5553db 100644 --- a/drivers/gpu/drm/i915/i915_gem.h +++ b/drivers/gpu/drm/i915/i915_gem.h @@ -123,16 +123,4 @@ static inline bool __tasklet_is_scheduled(struct tasklet_struct *t) return test_bit(TASKLET_STATE_SCHED, &t->state); } -struct i915_gem_ww_ctx { - struct ww_acquire_ctx ctx; - struct list_head obj_list; - bool intr; - struct drm_i915_gem_object *contended; -}; - -void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); -void i915_gem_ww_ctx_fini(struct i915_gem_ww_ctx *ctx); -int __must_check i915_gem_ww_ctx_backoff(struct i915_gem_ww_ctx *ctx); -void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); - #endif /* __I915_GEM_H__ */ diff --git a/drivers/gpu/drm/i915/i915_gem_ww.c b/drivers/gpu/drm/i915/i915_gem_ww.c new file mode 100644 index 000000000000..3f6ff139478e --- /dev/null +++ b/drivers/gpu/drm/i915/i915_gem_ww.c @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2020 Intel Corporation + */ +#include +#include "i915_gem_ww.h" +#include "gem/i915_gem_object.h" + +void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ww, bool intr) +{ + ww_acquire_init(&ww->ctx, &reservation_ww_class); + INIT_LIST_HEAD(&ww->obj_list); + ww->intr = intr; + ww->contended = NULL; +} + +static void i915_gem_ww_ctx_unlock_all(struct i915_gem_ww_ctx *ww) +{ + struct drm_i915_gem_object *obj; + + while ((obj = list_first_entry_or_null(&ww->obj_list, struct drm_i915_gem_object, obj_link))) { + list_del(&obj->obj_link); + i915_gem_object_unlock(obj); + i915_gem_object_put(obj); + } +} + +void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj) +{ + list_del(&obj->obj_link); + i915_gem_object_unlock(obj); + i915_gem_object_put(obj); +} + +void i915_gem_ww_ctx_fini(struct i915_gem_ww_ctx *ww) +{ + i915_gem_ww_ctx_unlock_all(ww); + WARN_ON(ww->contended); + ww_acquire_fini(&ww->ctx); +} + +int __must_check i915_gem_ww_ctx_backoff(struct i915_gem_ww_ctx *ww) +{ + int ret = 0; + + if (WARN_ON(!ww->contended)) + return -EINVAL; + + i915_gem_ww_ctx_unlock_all(ww); + if (ww->intr) + ret = dma_resv_lock_slow_interruptible(ww->contended->base.resv, &ww->ctx); + else + dma_resv_lock_slow(ww->contended->base.resv, &ww->ctx); + + if (!ret) + list_add_tail(&ww->contended->obj_link, &ww->obj_list); + else + i915_gem_object_put(ww->contended); + + ww->contended = NULL; + + return ret; +} diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h new file mode 100644 index 000000000000..f2d8769e4118 --- /dev/null +++ b/drivers/gpu/drm/i915/i915_gem_ww.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2020 Intel Corporation + */ +#ifndef __I915_GEM_WW_H__ +#define __I915_GEM_WW_H__ + +#include + +struct i915_gem_ww_ctx { + struct ww_acquire_ctx ctx; + struct list_head obj_list; + struct drm_i915_gem_object *contended; + bool intr; +}; + +void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); +void i915_gem_ww_ctx_fini(struct i915_gem_ww_ctx *ctx); +int __must_check i915_gem_ww_ctx_backoff(struct i915_gem_ww_ctx *ctx); +void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); +#endif -- 2.31.1