From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: [PATCH V2 09/10] xen/arm: io: Use binary search for mmio handler lookup Date: Sun, 26 Jun 2016 12:48:22 -0500 Message-ID: <1466963303-10850-10-git-send-email-shankerd@codeaurora.org> References: <1466963303-10850-1-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: <1466963303-10850-1-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: xen-devel , Julien Grall , Stefano Stabellini Cc: Philip Elcan , Shanker Donthineni , Vikram Sethi List-Id: xen-devel@lists.xenproject.org QXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBhc3Nv Y2lhdGVkIHdpdGgKbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhlIHN5c3RlbSBtaWdo dCBoYXZlIG1heGltdW0gb2YgMTQ0Cihhc3N1bWluZyBDT05GSUdfTlJfQ1BVUz0xMjgpIG1taW8g aGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCml0IHdvdWxkIHJlcXVpcmUgMTQ0IGl0 ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKaXQgaXMgdGltZSBm b3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4aXR5IE8obikpIHRvIGEgYmluYXJ5 CnNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3IgcmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxv b2t1cCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5rZXIgRG9udGhpbmVuaSA8c2hhbmtl cmRAY29kZWF1cm9yYS5vcmc+Ci0tLQogeGVuL2FyY2gvYXJtL2lvLmMgfCA1MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDM5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS9pby5jIGIveGVuL2FyY2gvYXJtL2lvLmMKaW5kZXggYTViMmMyZC4uYWJmNDlmYiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gvYXJtL2lvLmMKKysrIGIveGVuL2FyY2gvYXJtL2lvLmMKQEAgLTIw LDYgKzIwLDcgQEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NwaW5sb2Nr Lmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVuL3NvcnQuaD4KICNpbmNs dWRlIDxhc20vY3VycmVudC5oPgogI2luY2x1ZGUgPGFzbS9tbWlvLmg+CiAKQEAgLTcwLDIzICs3 MSwzOCBAQCBzdGF0aWMgaW50IGhhbmRsZV93cml0ZShjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVy ICpoYW5kbGVyLCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoYW5kbGVyLT5wcml2KTsKIH0KIAotaW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190ICppbmZv KQorY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqZmluZF9tbWlvX2hhbmRsZXIoc3RydWN0IHZj cHUgKnYsIHBhZGRyX3QgYWRkcikKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Ci0g ICAgaW50IGk7Ci0gICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlciA9IE5VTEw7 CiAgICAgY29uc3Qgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZ2LT5kb21haW4tPmFyY2gudm1taW87 CisgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlciA9IHZtbWlvLT5oYW5kbGVy czsKKyAgICB1bnNpZ25lZCBpbnQgZWlkeCA9IHZtbWlvLT5udW1fZW50cmllczsKKyAgICB1bnNp Z25lZCBpbnQgbWlkeCA9IGVpZHggLyAyOworICAgIHVuc2lnbmVkIGludCBzaWR4ID0gMDsKIAot ICAgIGZvciAoIGkgPSAwOyBpIDwgdm1taW8tPm51bV9lbnRyaWVzOyBpKysgKQorICAgIC8qIERv IGJpbmFyeSBzZWFyY2ggZm9yIG1hdGNoaW5nIG1taW8gaGFuZGxlciAqLworICAgIHdoaWxlICgg c2lkeCAhPSBtaWR4ICkKICAgICB7Ci0gICAgICAgIGhhbmRsZXIgPSAmdm1taW8tPmhhbmRsZXJz W2ldOwotCi0gICAgICAgIGlmICggKGluZm8tPmdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgotICAg ICAgICAgICAgIChpbmZvLT5ncGEgPCAoaGFuZGxlci0+YWRkciArIGhhbmRsZXItPnNpemUpKSAp Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKCBhZGRyIDwgaGFuZGxlclttaWR4XS5h ZGRyICkKKyAgICAgICAgICAgIGVpZHggPSBtaWR4OworICAgICAgICBlbHNlCisgICAgICAgICAg ICBzaWR4ID0gbWlkeDsKKyAgICAgICAgbWlkeCA9IHNpZHggKyAoZWlkeCAtIHNpZHgpIC8gMjsK ICAgICB9CiAKLSAgICBpZiAoIGkgPT0gdm1taW8tPm51bV9lbnRyaWVzICkKKyAgICBpZiAoIChh ZGRyID49IGhhbmRsZXJbc2lkeF0uYWRkcikgJiYKKyAgICAgICAgIChhZGRyIDwgKGhhbmRsZXJb c2lkeF0uYWRkciArIGhhbmRsZXJbc2lkeF0uc2l6ZSkpICkKKyAgICAgICAgcmV0dXJuIGhhbmRs ZXIgKyBzaWR4OworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK2ludCBoYW5kbGVfbW1pbyhtbWlv X2luZm9fdCAqaW5mbykKK3sKKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVy OworICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKKworICAgIGhhbmRsZXIgPSBmaW5kX21t aW9faGFuZGxlcih2LCBpbmZvLT5ncGEpOworICAgIGlmICggIWhhbmRsZXIgKQogICAgICAgICBy ZXR1cm4gMDsKIAogICAgIGlmICggaW5mby0+ZGFidC53cml0ZSApCkBAIC05NSw2ICsxMTEsMTQg QEAgaW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190ICppbmZvKQogICAgICAgICByZXR1cm4gaGFu ZGxlX3JlYWQoaGFuZGxlciwgdiwgaW5mbyk7CiB9CiAKK3N0YXRpYyBpbnQgY21wX21taW9faGFu ZGxlcihjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKmVsZW0pCit7CisgICAgY29uc3Qgc3Ry dWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjAgPSBrZXk7CisgICAgY29uc3Qgc3RydWN0IG1taW9f aGFuZGxlciAqaGFuZGxlcjEgPSBlbGVtOworCisgICAgcmV0dXJuIChoYW5kbGVyMC0+YWRkciA8 IGhhbmRsZXIxLT5hZGRyKSA/IC0xIDogMDsKK30KKwogdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRs ZXIoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBtbWlvX2hhbmRsZXJfb3BzICpvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YWRkcl90IGFkZHIsIHBhZGRyX3Qgc2l6ZSwgdm9pZCAqcHJpdikKQEAgLTEyMiw2ICsxNDYsMTAg QEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKIAogICAgIHZt bWlvLT5udW1fZW50cmllcysrOwogCisgICAgLyogU29ydCBtbWlvIGhhbmRsZXJzIGluIGFzY2Vu ZGluZyBvcmRlciBiYXNlZCBvbiBiYXNlIGFkZHJlc3MgKi8KKyAgICBzb3J0KHZtbWlvLT5oYW5k bGVycywgdm1taW8tPm51bV9lbnRyaWVzLCBzaXplb2Yoc3RydWN0IG1taW9faGFuZGxlciksCisg ICAgICAgICBjbXBfbW1pb19oYW5kbGVyLCBOVUxMKTsKKwogICAgIHNwaW5fdW5sb2NrKCZ2bW1p by0+bG9jayk7CiB9CiAKLS0gClF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBvbiBiZWhhbGYg b2YgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gClF1YWxjb21tIElubm92YXRpb24g Q2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIENvZGUgQXVyb3JhIEZvcnVtLCAKYSBMaW51eCBG b3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==