From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH V3 09/10] xen/arm: io: Use binary search for mmio handler lookup Date: Tue, 28 Jun 2016 11:13:33 +0100 Message-ID: <57724DCD.2050602@arm.com> References: <1467059622-14786-1-git-send-email-shankerd@codeaurora.org> <1467059622-14786-9-git-send-email-shankerd@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467059622-14786-9-git-send-email-shankerd@codeaurora.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Shanker Donthineni , xen-devel , Stefano Stabellini Cc: Philip Elcan , Steve Capper , Vikram Sethi , Wei Chen List-Id: xen-devel@lists.xenproject.org SGkgU2hhbmtlciwKCk9uIDI3LzA2LzE2IDIxOjMzLCBTaGFua2VyIERvbnRoaW5lbmkgd3JvdGU6 Cj4gQXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBh c3NvY2lhdGVkIHdpdGgKPiBsaW5lYXIgbG9va3VwIGFsc28gaW5jcmVhc2VzLiBUaGUgc3lzdGVt IG1pZ2h0IGhhdmUgbWF4aW11bSBvZiAxNDQKPiAoYXNzdW1pbmcgQ09ORklHX05SX0NQVVM9MTI4 KSBtbWlvIGhhbmRsZXJzLiBJbiB3b3JzdCBjYXNlIHNjZW5hcmlvLAo+IGl0IHdvdWxkIHJlcXVp cmUgMTQ0IGl0ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKPiBp dCBpcyB0aW1lIGZvciB1cyB0byBjaGFuZ2UgZnJvbSBsaW5lYXIgKGNvbXBsZXhpdHkgTyhuKSkg dG8gYSBiaW5hcnkKPiBzZWFyY2ggKGNvbXBsZXhpdHkgTyhsb2cgbikgZm9yIHJlZHVjaW5nIG1t aW8gaGFuZGxlciBsb29rdXAgb3ZlcmhlYWQuCgpIb3dldmVyLCB5b3Ugd2lsbCBhZGQgY29udGVu dGlvbiBiZWNhdXNlIHRoZSBjb2RlIGlzIHVzaW5nIGEgc3BpbmxvY2suCkkgYW0gcGxhbm5pbmcg dG8gc2VuZCB0aGUgZm9sbG93aW5nIHBhdGNoIGFzIGEgcHJlcmVxdWlzaXRlIG9mIHRoaXMgc2Vy aWVzCnRvIHN3aXRjaCBmcm9tIHNwaW5sb2NrIHRvIHJlYWQtd3JpdGUgbG9jazoKCmNvbW1pdCBi NjllOTc1Y2UyNWIyYzk0ZjcyMDViMGI4MzI5ZjM1MTMyN2ZiY2Y3CkF1dGhvcjogSnVsaWVuIEdy YWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KRGF0ZTogICBUdWUgSnVuIDI4IDExOjA0OjExIDIw MTYgKzAxMDAKCiAgICB4ZW4vYXJtOiBpbzogUHJvdGVjdCB0aGUgaGFuZGxlcnMgd2l0aCBhIHJl YWQtd3JpdGUgbG9jawogICAgCiAgICBDdXJyZW50bHksIGFjY2Vzc2luZyB0aGUgSS9PIGhhbmRs ZXJzIGRvZXMgbm90IHJlcXVpcmUgdG8gdGFrZSBhIGxvY2sKICAgIGJlY2F1c2UgbmV3IGhhbmRs ZXJzIGFyZSBhbHdheXMgYWRkZWQgYXQgdGhlIGVuZCBvZiB0aGUgYXJyYXkuIEluIGEKICAgIGZv bGxvdy11cCBwYXRjaCwgdGhpcyBhcnJheSB3aWxsIGJlIHNvcnQgdG8gb3B0aW1pemUgdGhlIGxv b2sgdXAuCiAgICAKICAgIEdpdmVuIHRoYXQgbW9zdCBvZiB0aGUgdGltZSB0aGUgSS9PIGhhbmRs ZXJzIHdpbGwgbm90IGJlIG1vZGlmeSwKICAgIHVzaW5nIGEgc3BpbmxvY2sgd2lsbCBhZGQgY29u dGVudGlvbiB3aGVuIG11bHRpcGxlIHZDUFUgYXJlIGFjY2Vzc2luZwogICAgdGhlIGVtdWxhdGVk IE1NSU9zLiBTbyB1c2UgYSByZWFkLXdyaXRlIGxvY2sgdG8gcHJvdGVjdGVkIHRoZSBoYW5kbGVy cy4KICAgIAogICAgRmluYWxseSwgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gcmUtaW5kZW50IGNv cnJlY3RseSBkb21haW5faW9faW5pdC4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdy YWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW8u YyBiL3hlbi9hcmNoL2FybS9pby5jCmluZGV4IDAxNTY3NTUuLjVhOTY4MzYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL2FybS9pby5jCisrKyBiL3hlbi9hcmNoL2FybS9pby5jCkBAIC03MCwyMyArNzAs MzkgQEAgc3RhdGljIGludCBoYW5kbGVfd3JpdGUoY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAq aGFuZGxlciwgc3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aGFuZGxlci0+cHJpdik7CiB9CiAKLWludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpmaW5kX21taW9faGFuZGxlcihzdHJ1 Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBhZGRyX3QgZ3BhKQogewotICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsK LSAgICBpbnQgaTsKLSAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyID0gTlVM TDsKLSAgICBjb25zdCBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJnYtPmRvbWFpbi0+YXJjaC52bW1p bzsKKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOworICAgIHVuc2lnbmVk IGludCBpOworICAgIHN0cnVjdCB2bW1pbyAqdm1taW8gPSAmZC0+YXJjaC52bW1pbzsKKworICAg IHJlYWRfbG9jaygmdm1taW8tPmxvY2spOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCB2bW1pby0+ bnVtX2VudHJpZXM7IGkrKyApCiAgICAgewogICAgICAgICBoYW5kbGVyID0gJnZtbWlvLT5oYW5k bGVyc1tpXTsKIAotICAgICAgICBpZiAoIChpbmZvLT5ncGEgPj0gaGFuZGxlci0+YWRkcikgJiYK LSAgICAgICAgICAgICAoaW5mby0+Z3BhIDwgKGhhbmRsZXItPmFkZHIgKyBoYW5kbGVyLT5zaXpl KSkgKQorICAgICAgICBpZiAoIChncGEgPj0gaGFuZGxlci0+YWRkcikgJiYKKyAgICAgICAgICAg ICAoZ3BhIDwgKGhhbmRsZXItPmFkZHIgKyBoYW5kbGVyLT5zaXplKSkgKQogICAgICAgICAgICAg YnJlYWs7CiAgICAgfQogCiAgICAgaWYgKCBpID09IHZtbWlvLT5udW1fZW50cmllcyApCisgICAg ICAgIGhhbmRsZXIgPSBOVUxMOworCisgICAgcmVhZF91bmxvY2soJnZtbWlvLT5sb2NrKTsKKwor ICAgIHJldHVybiBoYW5kbGVyOworfQorCitpbnQgaGFuZGxlX21taW8obW1pb19pbmZvX3QgKmlu Zm8pCit7CisgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OworICAgIGNvbnN0IHN0cnVjdCBt bWlvX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOworCisgICAgaGFuZGxlciA9IGZpbmRfbW1pb19o YW5kbGVyKHYtPmRvbWFpbiwgaW5mby0+Z3BhKTsKKyAgICBpZiAoICFoYW5kbGVyICkKICAgICAg ICAgcmV0dXJuIDA7CiAKICAgICBpZiAoIGluZm8tPmRhYnQud3JpdGUgKQpAQCAtMTA0LDcgKzEy MCw3IEBAIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQsCiAKICAg ICBCVUdfT04odm1taW8tPm51bV9lbnRyaWVzID49IE1BWF9JT19IQU5ETEVSKTsKIAotICAgIHNw aW5fbG9jaygmdm1taW8tPmxvY2spOworICAgIHdyaXRlX2xvY2soJnZtbWlvLT5sb2NrKTsKIAog ICAgIGhhbmRsZXIgPSAmdm1taW8tPmhhbmRsZXJzW3ZtbWlvLT5udW1fZW50cmllc107CiAKQEAg LTExMywyNCArMTI5LDE3IEBAIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21h aW4gKmQsCiAgICAgaGFuZGxlci0+c2l6ZSA9IHNpemU7CiAgICAgaGFuZGxlci0+cHJpdiA9IHBy aXY7CiAKLSAgICAvKgotICAgICAqIGhhbmRsZV9tbWlvIGlzIG5vdCB1c2luZyB0aGUgbG9jayB0 byBhdm9pZCBjb250ZW50aW9uLgotICAgICAqIE1ha2Ugc3VyZSB0aGUgb3RoZXIgcHJvY2Vzc29y cyBzZWUgdGhlIG5ldyBoYW5kbGVyIGJlZm9yZQotICAgICAqIHVwZGF0aW5nIHRoZSBudW1iZXIg b2YgZW50cmllcwotICAgICAqLwotICAgIGRzYihpc2gpOwotCiAgICAgdm1taW8tPm51bV9lbnRy aWVzKys7CiAKLSAgICBzcGluX3VubG9jaygmdm1taW8tPmxvY2spOworICAgIHdyaXRlX3VubG9j aygmdm1taW8tPmxvY2spOwogfQogCiBpbnQgZG9tYWluX2lvX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKIHsKLSAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLnZtbWlvLmxvY2spOwotICAgZC0+YXJj aC52bW1pby5udW1fZW50cmllcyA9IDA7CisgICAgcndsb2NrX2luaXQoJmQtPmFyY2gudm1taW8u bG9jayk7CisgICAgZC0+YXJjaC52bW1pby5udW1fZW50cmllcyA9IDA7CiAKLSAgIHJldHVybiAw OworICAgIHJldHVybiAwOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFy bS9tbWlvLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL21taW8uaAppbmRleCBkYTFjYzJlLi4zMmYx MGYyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21taW8uaAorKysgYi94ZW4vaW5j bHVkZS9hc20tYXJtL21taW8uaApAQCAtMjAsNiArMjAsNyBAQAogI2RlZmluZSBfX0FTTV9BUk1f TU1JT19IX18KIAogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vcndsb2NrLmg+ CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9yZWdzLmg+CiAKQEAg LTUxLDcgKzUyLDcgQEAgc3RydWN0IG1taW9faGFuZGxlciB7CiAKIHN0cnVjdCB2bW1pbyB7CiAg ICAgaW50IG51bV9lbnRyaWVzOwotICAgIHNwaW5sb2NrX3QgbG9jazsKKyAgICByd2xvY2tfdCBs b2NrOwogICAgIHN0cnVjdCBtbWlvX2hhbmRsZXIgaGFuZGxlcnNbTUFYX0lPX0hBTkRMRVJdOwog fTsKCi0tIApKdWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==