From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m=20=28VMware=29?= Subject: [PATCH v5 7/9] drm/vmwgfx: Use an RBtree instead of linked list for MOB resources Date: Wed, 12 Jun 2019 08:42:41 +0200 Message-ID: <20190612064243.55340-8-thellstrom@vmwopensource.org> References: <20190612064243.55340-1-thellstrom@vmwopensource.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from ste-pvt-msa2.bahnhof.se (ste-pvt-msa2.bahnhof.se [213.80.101.71]) by gabe.freedesktop.org (Postfix) with ESMTPS id 299278922E for ; Wed, 12 Jun 2019 06:43:09 +0000 (UTC) In-Reply-To: <20190612064243.55340-1-thellstrom@vmwopensource.org> 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: Thomas Hellstrom , pv-drivers@vmware.com, linux-kernel@vger.kernel.org, linux-graphics-maintainer@vmware.com, Deepak Rawat , nadav.amit@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgoKV2l0aCBlbXVs YXRlZCBjb2hlcmVudCBtZW1vcnkgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHF1aWNrbHkgbG9vayB1 cAphIHJlc291cmNlIGZyb20gdGhlIE1PQiBvZmZzZXQuIEluc3RlYWQgb2YgdHJhdmVyc2luZyBh IGxpbmtlZCBsaXN0IHdpdGgKTyhuKSB3b3JzdCBjYXNlLCB1c2UgYW4gUkJ0cmVlIHdpdGggTyhs b2cgbikgd29yc3QgY2FzZSBjb21wbGV4aXR5LgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxz dHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgpSZXZpZXdlZC1ieTogRGVlcGFrIFJhd2F0IDxk cmF3YXRAdm13YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5j ICAgICAgIHwgIDUgKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggICAg ICB8IDEwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMg fCAzMyArKysrKysrKysrKysrKysrKy0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0 aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKaW5k ZXggOTBjYTg2NjY0MGZlLi5lOGJjN2E3YWMwMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Ym8uYwpAQCAtNDY0LDYgKzQ2NCw3IEBAIHZvaWQgdm13X2JvX2JvX2ZyZWUoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibykKIAlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZtd19ibyA9IHZt d19idWZmZXJfb2JqZWN0KGJvKTsKIAogCVdBUk5fT04odm13X2JvLT5kaXJ0eSk7CisJV0FSTl9P TighUkJfRU1QVFlfUk9PVCgmdm13X2JvLT5yZXNfdHJlZSkpOwogCXZtd19ib191bm1hcCh2bXdf Ym8pOwogCWtmcmVlKHZtd19ibyk7CiB9CkBAIC00ODAsNiArNDgxLDcgQEAgc3RhdGljIHZvaWQg dm13X3VzZXJfYm9fZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCXN0cnVj dCB2bXdfYnVmZmVyX29iamVjdCAqdmJvID0gJnZtd191c2VyX2JvLT52Ym87CiAKIAlXQVJOX09O KHZiby0+ZGlydHkpOworCVdBUk5fT04oIVJCX0VNUFRZX1JPT1QoJnZiby0+cmVzX3RyZWUpKTsK IAl2bXdfYm9fdW5tYXAodmJvKTsKIAl0dG1fcHJpbWVfb2JqZWN0X2tmcmVlKHZtd191c2VyX2Jv LCBwcmltZSk7CiB9CkBAIC01MTUsOCArNTE3LDcgQEAgaW50IHZtd19ib19pbml0KHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJbWVtc2V0KHZtd19ibywgMCwgc2l6ZW9mKCp2bXdfYm8p KTsKIAlCVUlMRF9CVUdfT04oVFRNX01BWF9CT19QUklPUklUWSA8PSAzKTsKIAl2bXdfYm8tPmJh c2UucHJpb3JpdHkgPSAzOwotCi0JSU5JVF9MSVNUX0hFQUQoJnZtd19iby0+cmVzX2xpc3QpOwor CXZtd19iby0+cmVzX3RyZWUgPSBSQl9ST09UOwogCiAJcmV0ID0gdHRtX2JvX2luaXQoYmRldiwg JnZtd19iby0+YmFzZSwgc2l6ZSwKIAkJCSAgdHRtX2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCmluZGV4IDI3YzI1OTM5NTc5MC4uOWIzNDc5 MjMxOTZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaApAQCAtODksNyArODksNyBA QCBzdHJ1Y3Qgdm13X2Zwcml2IHsKIC8qKgogICogc3RydWN0IHZtd19idWZmZXJfb2JqZWN0IC0g VFRNIGJ1ZmZlciBvYmplY3Qgd2l0aCB2bXdnZnggYWRkaXRpb25zCiAgKiBAYmFzZTogVGhlIFRU TSBidWZmZXIgb2JqZWN0Ci0gKiBAcmVzX2xpc3Q6IExpc3Qgb2YgcmVzb3VyY2VzIHVzaW5nIHRo aXMgYnVmZmVyIG9iamVjdCBhcyBhIGJhY2tpbmcgTU9CCisgKiBAcmVzX3RyZWU6IFJCIHRyZWUg b2YgcmVzb3VyY2VzIHVzaW5nIHRoaXMgYnVmZmVyIG9iamVjdCBhcyBhIGJhY2tpbmcgTU9CCiAg KiBAcGluX2NvdW50OiBwaW4gZGVwdGgKICAqIEBkeF9xdWVyeV9jdHg6IERYIGNvbnRleHQgaWYg dGhpcyBidWZmZXIgb2JqZWN0IGlzIHVzZWQgYXMgYSBEWCBxdWVyeSBNT0IKICAqIEBtYXA6IEtt YXAgb2JqZWN0IGZvciBzZW1pLXBlcnNpc3RlbnQgbWFwcGluZ3MKQEAgLTk4LDcgKzk4LDcgQEAg c3RydWN0IHZtd19mcHJpdiB7CiAgKi8KIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCB7CiAJc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0IGJhc2U7Ci0Jc3RydWN0IGxpc3RfaGVhZCByZXNfbGlzdDsK KwlzdHJ1Y3QgcmJfcm9vdCByZXNfdHJlZTsKIAlzMzIgcGluX2NvdW50OwogCS8qIE5vdCByZWYt Y291bnRlZC4gIFByb3RlY3RlZCBieSBiaW5kaW5nX211dGV4ICovCiAJc3RydWN0IHZtd19yZXNv dXJjZSAqZHhfcXVlcnlfY3R4OwpAQCAtMTQ2LDggKzE0Niw4IEBAIHN0cnVjdCB2bXdfcmVzX2Z1 bmM7CiAgKiBwaW4tY291bnQgZ3JlYXRlciB0aGFuIHplcm8uIEl0IGlzIG5vdCBvbiB0aGUgcmVz b3VyY2UgTFJVIGxpc3RzIGFuZCBpdHMKICAqIGJhY2t1cCBidWZmZXIgaXMgcGlubmVkLiBIZW5j ZSBpdCBjYW4ndCBiZSBldmljdGVkLgogICogQGZ1bmM6IE1ldGhvZCB2dGFibGUgZm9yIHRoaXMg cmVzb3VyY2UuIEltbXV0YWJsZS4KKyAqIEBtb2Jfbm9kZTsgTm9kZSBmb3IgdGhlIE1PQiBiYWNr dXAgcmJ0cmVlLiBQcm90ZWN0ZWQgYnkgQGJhY2t1cCByZXNlcnZlZC4KICAqIEBscnVfaGVhZDog TGlzdCBoZWFkIGZvciB0aGUgTFJVIGxpc3QuIFByb3RlY3RlZCBieSBAZGV2X3ByaXY6OnJlc291 cmNlX2xvY2suCi0gKiBAbW9iX2hlYWQ6IExpc3QgaGVhZCBmb3IgdGhlIE1PQiBiYWNrdXAgbGlz dC4gUHJvdGVjdGVkIGJ5IEBiYWNrdXAgcmVzZXJ2ZWQuCiAgKiBAYmluZGluZ19oZWFkOiBMaXN0 IGhlYWQgZm9yIHRoZSBjb250ZXh0IGJpbmRpbmcgbGlzdC4gUHJvdGVjdGVkIGJ5CiAgKiB0aGUg QGRldl9wcml2OjpiaW5kaW5nX211dGV4CiAgKiBAcmVzX2ZyZWU6IFRoZSByZXNvdXJjZSBkZXN0 cnVjdG9yLgpAQCAtMTY4LDggKzE2OCw4IEBAIHN0cnVjdCB2bXdfcmVzb3VyY2UgewogCXVuc2ln bmVkIGxvbmcgYmFja3VwX29mZnNldDsKIAl1bnNpZ25lZCBsb25nIHBpbl9jb3VudDsKIAljb25z dCBzdHJ1Y3Qgdm13X3Jlc19mdW5jICpmdW5jOworCXN0cnVjdCByYl9ub2RlIG1vYl9ub2RlOwog CXN0cnVjdCBsaXN0X2hlYWQgbHJ1X2hlYWQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCBtb2JfaGVhZDsK IAlzdHJ1Y3QgbGlzdF9oZWFkIGJpbmRpbmdfaGVhZDsKIAlzdHJ1Y3Qgdm13X3Jlc291cmNlX2Rp cnR5ICpkaXJ0eTsKIAl2b2lkICgqcmVzX2ZyZWUpIChzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMp OwpAQCAtNzQyLDcgKzc0Miw3IEBAIHZvaWQgdm13X3Jlc291cmNlX2RpcnR5X3VwZGF0ZShzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXMsIHBnb2ZmX3Qgc3RhcnQsCiAgKi8KIHN0YXRpYyBpbmxpbmUg Ym9vbCB2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaGVkKGNvbnN0IHN0cnVjdCB2bXdfcmVzb3VyY2Ug KnJlcykKIHsKLQlyZXR1cm4gIWxpc3RfZW1wdHkoJnJlcy0+bW9iX2hlYWQpOworCXJldHVybiAh UkJfRU1QVFlfTk9ERSgmcmVzLT5tb2Jfbm9kZSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKaW5kZXggZGE5YWZhODNmYjRmLi5iODRkZDU5NTM4ODYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwpAQCAtNDEsMTEgKzQx LDI0IEBACiB2b2lkIHZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2Ug KnJlcykKIHsKIAlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJhY2t1cCA9IHJlcy0+YmFja3Vw OworCXN0cnVjdCByYl9ub2RlICoqbmV3ID0gJmJhY2t1cC0+cmVzX3RyZWUucmJfbm9kZSwgKnBh cmVudCA9IE5VTEw7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZiYWNrdXAtPmJhc2UucmVzdi0+ bG9jay5iYXNlKTsKIAlyZXMtPnVzZWRfcHJpbyA9IChyZXMtPnJlc19kaXJ0eSkgPyByZXMtPmZ1 bmMtPmRpcnR5X3ByaW8gOgogCQlyZXMtPmZ1bmMtPnByaW87Ci0JbGlzdF9hZGRfdGFpbCgmcmVz LT5tb2JfaGVhZCwgJmJhY2t1cC0+cmVzX2xpc3QpOworCisJd2hpbGUgKCpuZXcpIHsKKwkJc3Ry dWN0IHZtd19yZXNvdXJjZSAqdGhpcyA9CisJCQljb250YWluZXJfb2YoKm5ldywgc3RydWN0IHZt d19yZXNvdXJjZSwgbW9iX25vZGUpOworCisJCXBhcmVudCA9ICpuZXc7CisJCW5ldyA9IChyZXMt PmJhY2t1cF9vZmZzZXQgPCB0aGlzLT5iYWNrdXBfb2Zmc2V0KSA/CisJCQkmKCgqbmV3KS0+cmJf bGVmdCkgOiAmKCgqbmV3KS0+cmJfcmlnaHQpOworCX0KKworCXJiX2xpbmtfbm9kZSgmcmVzLT5t b2Jfbm9kZSwgcGFyZW50LCBuZXcpOworCXJiX2luc2VydF9jb2xvcigmcmVzLT5tb2Jfbm9kZSwg JmJhY2t1cC0+cmVzX3RyZWUpOworCiAJdm13X2JvX3ByaW9fYWRkKGJhY2t1cCwgcmVzLT51c2Vk X3ByaW8pOwogfQogCkBAIC01OSw3ICs3Miw4IEBAIHZvaWQgdm13X3Jlc291cmNlX21vYl9kZXRh Y2goc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYmFj a3VwLT5iYXNlLnJlc3YtPmxvY2suYmFzZSk7CiAJaWYgKHZtd19yZXNvdXJjZV9tb2JfYXR0YWNo ZWQocmVzKSkgewotCQlsaXN0X2RlbF9pbml0KCZyZXMtPm1vYl9oZWFkKTsKKwkJcmJfZXJhc2Uo JnJlcy0+bW9iX25vZGUsICZiYWNrdXAtPnJlc190cmVlKTsKKwkJUkJfQ0xFQVJfTk9ERSgmcmVz LT5tb2Jfbm9kZSk7CiAJCXZtd19ib19wcmlvX2RlbChiYWNrdXAsIHJlcy0+dXNlZF9wcmlvKTsK IAl9CiB9CkBAIC0yMDYsOCArMjIwLDggQEAgaW50IHZtd19yZXNvdXJjZV9pbml0KHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAlyZXMtPnJl c19mcmVlID0gcmVzX2ZyZWU7CiAJcmVzLT5kZXZfcHJpdiA9IGRldl9wcml2OwogCXJlcy0+ZnVu YyA9IGZ1bmM7CisJUkJfQ0xFQVJfTk9ERSgmcmVzLT5tb2Jfbm9kZSk7CiAJSU5JVF9MSVNUX0hF QUQoJnJlcy0+bHJ1X2hlYWQpOwotCUlOSVRfTElTVF9IRUFEKCZyZXMtPm1vYl9oZWFkKTsKIAlJ TklUX0xJU1RfSEVBRCgmcmVzLT5iaW5kaW5nX2hlYWQpOwogCXJlcy0+aWQgPSAtMTsKIAlyZXMt PmJhY2t1cCA9IE5VTEw7CkBAIC03NTYsMTkgKzc3MCwyMCBAQCBpbnQgdm13X3Jlc291cmNlX3Zh bGlkYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRyKQogICovCiB2b2lkIHZt d19yZXNvdXJjZV91bmJpbmRfbGlzdChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykKIHsK LQotCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgKm5leHQ7CiAJc3RydWN0IHR0bV92YWxpZGF0 ZV9idWZmZXIgdmFsX2J1ZiA9IHsKIAkJLmJvID0gJnZiby0+YmFzZSwKIAkJLm51bV9zaGFyZWQg PSAwCiAJfTsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZiby0+YmFzZS5yZXN2LT5sb2NrLmJh c2UpOwotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXMsIG5leHQsICZ2Ym8tPnJlc19saXN0 LCBtb2JfaGVhZCkgewotCQlpZiAoIXJlcy0+ZnVuYy0+dW5iaW5kKQotCQkJY29udGludWU7CisJ d2hpbGUgKCFSQl9FTVBUWV9ST09UKCZ2Ym8tPnJlc190cmVlKSkgeworCQlzdHJ1Y3QgcmJfbm9k ZSAqbm9kZSA9IHZiby0+cmVzX3RyZWUucmJfbm9kZTsKKwkJc3RydWN0IHZtd19yZXNvdXJjZSAq cmVzID0KKwkJCWNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3Qgdm13X3Jlc291cmNlLCBtb2Jfbm9k ZSk7CisKKwkJaWYgKCFXQVJOX09OX09OQ0UoIXJlcy0+ZnVuYy0+dW5iaW5kKSkKKwkJCSh2b2lk KSByZXMtPmZ1bmMtPnVuYmluZChyZXMsIHJlcy0+cmVzX2RpcnR5LCAmdmFsX2J1Zik7CiAKLQkJ KHZvaWQpIHJlcy0+ZnVuYy0+dW5iaW5kKHJlcywgcmVzLT5yZXNfZGlydHksICZ2YWxfYnVmKTsK IAkJcmVzLT5iYWNrdXBfZGlydHkgPSB0cnVlOwogCQlyZXMtPnJlc19kaXJ0eSA9IGZhbHNlOwog CQl2bXdfcmVzb3VyY2VfbW9iX2RldGFjaChyZXMpOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=