From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 7/9] drm/vmwgfx: Use an RBtree instead of linked list for MOB resources Date: Wed, 24 Apr 2019 12:00:27 +0000 Message-ID: <20190424115918.3380-8-thellstrom@vmware.com> References: <20190424115918.3380-1-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190424115918.3380-1-thellstrom@vmware.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" Cc: Pv-drivers , "linux-kernel@vger.kernel.org" , Thomas Hellstrom , Deepak Singh Rawat List-Id: dri-devel@lists.freedesktop.org V2l0aCBlbXVsYXRlZCBjb2hlcmVudCBtZW1vcnkgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHF1aWNr bHkgbG9vayB1cA0KYSByZXNvdXJjZSBmcm9tIHRoZSBNT0Igb2Zmc2V0LiBJbnN0ZWFkIG9mIHRy YXZlcnNpbmcgYSBsaW5rZWQgbGlzdCB3aXRoDQpPKG4pIHdvcnN0IGNhc2UsIHVzZSBhbiBSQnRy ZWUgd2l0aCBPKGxvZyBuKSB3b3JzdCBjYXNlIGNvbXBsZXhpdHkuDQoNClNpZ25lZC1vZmYtYnk6 IFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb21Adm13YXJlLmNvbT4NClJldmlld2VkLWJ5OiBE ZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYm8uYyAgICAgICB8ICA1ICsrLS0NCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9kcnYuaCAgICAgIHwgMTAgKysrLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3Jlc291cmNlLmMgfCAzMyArKysrKysrKysrKysrKysrKy0tLS0tLS0NCiAzIGZpbGVz IGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2JvLmMNCmluZGV4IDkwY2E4NjY2NDBmZS4uZThiYzdhN2FjMDMxIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYw0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYw0KQEAgLTQ2NCw2ICs0NjQsNyBAQCB2b2lkIHZt d19ib19ib19mcmVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pDQogCXN0cnVjdCB2bXdf YnVmZmVyX29iamVjdCAqdm13X2JvID0gdm13X2J1ZmZlcl9vYmplY3QoYm8pOw0KIA0KIAlXQVJO X09OKHZtd19iby0+ZGlydHkpOw0KKwlXQVJOX09OKCFSQl9FTVBUWV9ST09UKCZ2bXdfYm8tPnJl c190cmVlKSk7DQogCXZtd19ib191bm1hcCh2bXdfYm8pOw0KIAlrZnJlZSh2bXdfYm8pOw0KIH0N CkBAIC00ODAsNiArNDgxLDcgQEAgc3RhdGljIHZvaWQgdm13X3VzZXJfYm9fZGVzdHJveShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQ0KIAlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZi byA9ICZ2bXdfdXNlcl9iby0+dmJvOw0KIA0KIAlXQVJOX09OKHZiby0+ZGlydHkpOw0KKwlXQVJO X09OKCFSQl9FTVBUWV9ST09UKCZ2Ym8tPnJlc190cmVlKSk7DQogCXZtd19ib191bm1hcCh2Ym8p Ow0KIAl0dG1fcHJpbWVfb2JqZWN0X2tmcmVlKHZtd191c2VyX2JvLCBwcmltZSk7DQogfQ0KQEAg LTUxNSw4ICs1MTcsNyBAQCBpbnQgdm13X2JvX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwNCiAJbWVtc2V0KHZtd19ibywgMCwgc2l6ZW9mKCp2bXdfYm8pKTsNCiAJQlVJTERfQlVH X09OKFRUTV9NQVhfQk9fUFJJT1JJVFkgPD0gMyk7DQogCXZtd19iby0+YmFzZS5wcmlvcml0eSA9 IDM7DQotDQotCUlOSVRfTElTVF9IRUFEKCZ2bXdfYm8tPnJlc19saXN0KTsNCisJdm13X2JvLT5y ZXNfdHJlZSA9IFJCX1JPT1Q7DQogDQogCXJldCA9IHR0bV9ib19pbml0KGJkZXYsICZ2bXdfYm8t PmJhc2UsIHNpemUsDQogCQkJICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBsYWNlbWVudCwNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQppbmRleCBmMDVmY2U1MmZiYjQuLjgxZWJjZDY2ODAz OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaA0KQEAgLTkwLDcgKzkwLDcgQEAg c3RydWN0IHZtd19mcHJpdiB7DQogLyoqDQogICogc3RydWN0IHZtd19idWZmZXJfb2JqZWN0IC0g VFRNIGJ1ZmZlciBvYmplY3Qgd2l0aCB2bXdnZnggYWRkaXRpb25zDQogICogQGJhc2U6IFRoZSBU VE0gYnVmZmVyIG9iamVjdA0KLSAqIEByZXNfbGlzdDogTGlzdCBvZiByZXNvdXJjZXMgdXNpbmcg dGhpcyBidWZmZXIgb2JqZWN0IGFzIGEgYmFja2luZyBNT0INCisgKiBAcmVzX3RyZWU6IFJCIHRy ZWUgb2YgcmVzb3VyY2VzIHVzaW5nIHRoaXMgYnVmZmVyIG9iamVjdCBhcyBhIGJhY2tpbmcgTU9C DQogICogQHBpbl9jb3VudDogcGluIGRlcHRoDQogICogQGR4X3F1ZXJ5X2N0eDogRFggY29udGV4 dCBpZiB0aGlzIGJ1ZmZlciBvYmplY3QgaXMgdXNlZCBhcyBhIERYIHF1ZXJ5IE1PQg0KICAqIEBt YXA6IEttYXAgb2JqZWN0IGZvciBzZW1pLXBlcnNpc3RlbnQgbWFwcGluZ3MNCkBAIC05OSw3ICs5 OSw3IEBAIHN0cnVjdCB2bXdfZnByaXYgew0KICAqLw0KIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCB7DQogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBiYXNlOw0KLQlzdHJ1Y3QgbGlzdF9oZWFk IHJlc19saXN0Ow0KKwlzdHJ1Y3QgcmJfcm9vdCByZXNfdHJlZTsNCiAJczMyIHBpbl9jb3VudDsN CiAJLyogTm90IHJlZi1jb3VudGVkLiAgUHJvdGVjdGVkIGJ5IGJpbmRpbmdfbXV0ZXggKi8NCiAJ c3RydWN0IHZtd19yZXNvdXJjZSAqZHhfcXVlcnlfY3R4Ow0KQEAgLTE0Nyw4ICsxNDcsOCBAQCBz dHJ1Y3Qgdm13X3Jlc19mdW5jOw0KICAqIHBpbi1jb3VudCBncmVhdGVyIHRoYW4gemVyby4gSXQg aXMgbm90IG9uIHRoZSByZXNvdXJjZSBMUlUgbGlzdHMgYW5kIGl0cw0KICAqIGJhY2t1cCBidWZm ZXIgaXMgcGlubmVkLiBIZW5jZSBpdCBjYW4ndCBiZSBldmljdGVkLg0KICAqIEBmdW5jOiBNZXRo b2QgdnRhYmxlIGZvciB0aGlzIHJlc291cmNlLiBJbW11dGFibGUuDQorICogQG1vYl9ub2RlOyBO b2RlIGZvciB0aGUgTU9CIGJhY2t1cCByYnRyZWUuIFByb3RlY3RlZCBieSBAYmFja3VwIHJlc2Vy dmVkLg0KICAqIEBscnVfaGVhZDogTGlzdCBoZWFkIGZvciB0aGUgTFJVIGxpc3QuIFByb3RlY3Rl ZCBieSBAZGV2X3ByaXY6OnJlc291cmNlX2xvY2suDQotICogQG1vYl9oZWFkOiBMaXN0IGhlYWQg Zm9yIHRoZSBNT0IgYmFja3VwIGxpc3QuIFByb3RlY3RlZCBieSBAYmFja3VwIHJlc2VydmVkLg0K ICAqIEBiaW5kaW5nX2hlYWQ6IExpc3QgaGVhZCBmb3IgdGhlIGNvbnRleHQgYmluZGluZyBsaXN0 LiBQcm90ZWN0ZWQgYnkNCiAgKiB0aGUgQGRldl9wcml2OjpiaW5kaW5nX211dGV4DQogICogQHJl c19mcmVlOiBUaGUgcmVzb3VyY2UgZGVzdHJ1Y3Rvci4NCkBAIC0xNjksOCArMTY5LDggQEAgc3Ry dWN0IHZtd19yZXNvdXJjZSB7DQogCXVuc2lnbmVkIGxvbmcgYmFja3VwX29mZnNldDsNCiAJdW5z aWduZWQgbG9uZyBwaW5fY291bnQ7DQogCWNvbnN0IHN0cnVjdCB2bXdfcmVzX2Z1bmMgKmZ1bmM7 DQorCXN0cnVjdCByYl9ub2RlIG1vYl9ub2RlOw0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxydV9oZWFk Ow0KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1vYl9oZWFkOw0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGJpbmRp bmdfaGVhZDsNCiAJc3RydWN0IHZtd19yZXNvdXJjZV9kaXJ0eSAqZGlydHk7DQogCXZvaWQgKCpy ZXNfZnJlZSkgKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQpAQCAtNzQzLDcgKzc0Myw3IEBA IHZvaWQgdm13X3Jlc291cmNlX2RpcnR5X3VwZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMs IHBnb2ZmX3Qgc3RhcnQsDQogICovDQogc3RhdGljIGlubGluZSBib29sIHZtd19yZXNvdXJjZV9t b2JfYXR0YWNoZWQoY29uc3Qgc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQ0KIHsNCi0JcmV0dXJu ICFsaXN0X2VtcHR5KCZyZXMtPm1vYl9oZWFkKTsNCisJcmV0dXJuICFSQl9FTVBUWV9OT0RFKCZy ZXMtPm1vYl9ub2RlKTsNCiB9DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3Jlc291cmNlLmMNCmluZGV4IGQzNWY0YmQzMmNkOS4uZmY5ZmU1NjUwNDY4IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYw0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYw0KQEAgLTQxLDExICs0MSwyNCBAQA0K IHZvaWQgdm13X3Jlc291cmNlX21vYl9hdHRhY2goc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQ0K IHsNCiAJc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpiYWNrdXAgPSByZXMtPmJhY2t1cDsNCisJ c3RydWN0IHJiX25vZGUgKipuZXcgPSAmYmFja3VwLT5yZXNfdHJlZS5yYl9ub2RlLCAqcGFyZW50 ID0gTlVMTDsNCiANCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYmFja3VwLT5iYXNlLnJlc3YtPmxv Y2suYmFzZSk7DQogCXJlcy0+dXNlZF9wcmlvID0gKHJlcy0+cmVzX2RpcnR5KSA/IHJlcy0+ZnVu Yy0+ZGlydHlfcHJpbyA6DQogCQlyZXMtPmZ1bmMtPnByaW87DQotCWxpc3RfYWRkX3RhaWwoJnJl cy0+bW9iX2hlYWQsICZiYWNrdXAtPnJlc19saXN0KTsNCisNCisJd2hpbGUgKCpuZXcpIHsNCisJ CXN0cnVjdCB2bXdfcmVzb3VyY2UgKnRoaXMgPQ0KKwkJCWNvbnRhaW5lcl9vZigqbmV3LCBzdHJ1 Y3Qgdm13X3Jlc291cmNlLCBtb2Jfbm9kZSk7DQorDQorCQlwYXJlbnQgPSAqbmV3Ow0KKwkJbmV3 ID0gKHJlcy0+YmFja3VwX29mZnNldCA8IHRoaXMtPmJhY2t1cF9vZmZzZXQpID8NCisJCQkmKCgq bmV3KS0+cmJfbGVmdCkgOiAmKCgqbmV3KS0+cmJfcmlnaHQpOw0KKwl9DQorDQorCXJiX2xpbmtf bm9kZSgmcmVzLT5tb2Jfbm9kZSwgcGFyZW50LCBuZXcpOw0KKwlyYl9pbnNlcnRfY29sb3IoJnJl cy0+bW9iX25vZGUsICZiYWNrdXAtPnJlc190cmVlKTsNCisNCiAJdm13X2JvX3ByaW9fYWRkKGJh Y2t1cCwgcmVzLT51c2VkX3ByaW8pOw0KIH0NCiANCkBAIC01OSw3ICs3Miw4IEBAIHZvaWQgdm13 X3Jlc291cmNlX21vYl9kZXRhY2goc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQ0KIA0KIAlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZiYWNrdXAtPmJhc2UucmVzdi0+bG9jay5iYXNlKTsNCiAJaWYgKHZt d19yZXNvdXJjZV9tb2JfYXR0YWNoZWQocmVzKSkgew0KLQkJbGlzdF9kZWxfaW5pdCgmcmVzLT5t b2JfaGVhZCk7DQorCQlyYl9lcmFzZSgmcmVzLT5tb2Jfbm9kZSwgJmJhY2t1cC0+cmVzX3RyZWUp Ow0KKwkJUkJfQ0xFQVJfTk9ERSgmcmVzLT5tb2Jfbm9kZSk7DQogCQl2bXdfYm9fcHJpb19kZWwo YmFja3VwLCByZXMtPnVzZWRfcHJpbyk7DQogCX0NCiB9DQpAQCAtMjA2LDggKzIyMCw4IEBAIGlu dCB2bXdfcmVzb3VyY2VfaW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qg dm13X3Jlc291cmNlICpyZXMsDQogCXJlcy0+cmVzX2ZyZWUgPSByZXNfZnJlZTsNCiAJcmVzLT5k ZXZfcHJpdiA9IGRldl9wcml2Ow0KIAlyZXMtPmZ1bmMgPSBmdW5jOw0KKwlSQl9DTEVBUl9OT0RF KCZyZXMtPm1vYl9ub2RlKTsNCiAJSU5JVF9MSVNUX0hFQUQoJnJlcy0+bHJ1X2hlYWQpOw0KLQlJ TklUX0xJU1RfSEVBRCgmcmVzLT5tb2JfaGVhZCk7DQogCUlOSVRfTElTVF9IRUFEKCZyZXMtPmJp bmRpbmdfaGVhZCk7DQogCXJlcy0+aWQgPSAtMTsNCiAJcmVzLT5iYWNrdXAgPSBOVUxMOw0KQEAg LTc1NSwxOSArNzY5LDIwIEBAIGludCB2bXdfcmVzb3VyY2VfdmFsaWRhdGUoc3RydWN0IHZtd19y ZXNvdXJjZSAqcmVzLCBib29sIGludHIpDQogICovDQogdm9pZCB2bXdfcmVzb3VyY2VfdW5iaW5k X2xpc3Qoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pDQogew0KLQ0KLQlzdHJ1Y3Qgdm13 X3Jlc291cmNlICpyZXMsICpuZXh0Ow0KIAlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciB2YWxf YnVmID0gew0KIAkJLmJvID0gJnZiby0+YmFzZSwNCiAJCS5udW1fc2hhcmVkID0gMA0KIAl9Ow0K IA0KIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2Ym8tPmJhc2UucmVzdi0+bG9jay5iYXNlKTsNCi0J bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcywgbmV4dCwgJnZiby0+cmVzX2xpc3QsIG1vYl9o ZWFkKSB7DQotCQlpZiAoIXJlcy0+ZnVuYy0+dW5iaW5kKQ0KLQkJCWNvbnRpbnVlOw0KKwl3aGls ZSAoIVJCX0VNUFRZX1JPT1QoJnZiby0+cmVzX3RyZWUpKSB7DQorCQlzdHJ1Y3QgcmJfbm9kZSAq bm9kZSA9IHZiby0+cmVzX3RyZWUucmJfbm9kZTsNCisJCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJl cyA9DQorCQkJY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCB2bXdfcmVzb3VyY2UsIG1vYl9ub2Rl KTsNCisNCisJCWlmICghV0FSTl9PTl9PTkNFKCFyZXMtPmZ1bmMtPnVuYmluZCkpDQorCQkJKHZv aWQpIHJlcy0+ZnVuYy0+dW5iaW5kKHJlcywgcmVzLT5yZXNfZGlydHksICZ2YWxfYnVmKTsNCiAN Ci0JCSh2b2lkKSByZXMtPmZ1bmMtPnVuYmluZChyZXMsIHJlcy0+cmVzX2RpcnR5LCAmdmFsX2J1 Zik7DQogCQlyZXMtPmJhY2t1cF9kaXJ0eSA9IHRydWU7DQogCQlyZXMtPnJlc19kaXJ0eSA9IGZh bHNlOw0KIAkJdm13X3Jlc291cmNlX21vYl9kZXRhY2gocmVzKTsNCi0tIA0KMi4yMC4xDQoNCg==