From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: Re: [PATCH V2 09/10] xen/arm: io: Use binary search for mmio handler lookup Date: Mon, 27 Jun 2016 09:50:26 -0500 Message-ID: <57713D32.4050806@codeaurora.org> References: <1466963303-10850-1-git-send-email-shankerd@codeaurora.org> <1466963303-10850-10-git-send-email-shankerd@codeaurora.org> <57712AC9.8050302@arm.com> Reply-To: shankerd@codeaurora.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57712AC9.8050302@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , xen-devel , Stefano Stabellini Cc: Philip Elcan , Vikram Sethi List-Id: xen-devel@lists.xenproject.org CgpPbiAwNi8yNy8yMDE2IDA4OjMxIEFNLCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gSGkgU2hhbmtl ciwKPgo+IE9uIDI2LzA2LzE2IDE4OjQ4LCBTaGFua2VyIERvbnRoaW5lbmkgd3JvdGU6Cj4+IEFz IHRoZSBudW1iZXIgb2YgSS9PIGhhbmRsZXJzIGluY3JlYXNlLCB0aGUgb3ZlcmhlYWQgYXNzb2Np YXRlZCB3aXRoCj4+IGxpbmVhciBsb29rdXAgYWxzbyBpbmNyZWFzZXMuIFRoZSBzeXN0ZW0gbWln aHQgaGF2ZSBtYXhpbXVtIG9mIDE0NAo+PiAoYXNzdW1pbmcgQ09ORklHX05SX0NQVVM9MTI4KSBt bWlvIGhhbmRsZXJzLiBJbiB3b3JzdCBjYXNlIHNjZW5hcmlvLAo+PiBpdCB3b3VsZCByZXF1aXJl IDE0NCBpdGVyYXRpb25zIGZvciBmaW5kaW5nIGEgbWF0Y2hpbmcgaGFuZGxlci4gTm93Cj4+IGl0 IGlzIHRpbWUgZm9yIHVzIHRvIGNoYW5nZSBmcm9tIGxpbmVhciAoY29tcGxleGl0eSBPKG4pKSB0 byBhIGJpbmFyeQo+PiBzZWFyY2ggKGNvbXBsZXhpdHkgTyhsb2cgbikgZm9yIHJlZHVjaW5nIG1t aW8gaGFuZGxlciBsb29rdXAgb3ZlcmhlYWQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYW5rZXIg RG9udGhpbmVuaSA8c2hhbmtlcmRAY29kZWF1cm9yYS5vcmc+Cj4+IC0tLQo+PiAgIHhlbi9hcmNo L2FybS9pby5jIHwgNTAKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pby5jIGIveGVuL2FyY2gv YXJtL2lvLmMKPj4gaW5kZXggYTViMmMyZC4uYWJmNDlmYiAxMDA2NDQKPj4gLS0tIGEveGVuL2Fy Y2gvYXJtL2lvLmMKPj4gKysrIGIveGVuL2FyY2gvYXJtL2lvLmMKPj4gQEAgLTIwLDYgKzIwLDcg QEAKPj4gICAjaW5jbHVkZSA8eGVuL2xpYi5oPgo+PiAgICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2su aD4KPj4gICAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4+ICsjaW5jbHVkZSA8eGVuL3NvcnQuaD4K Pj4gICAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KPj4gICAjaW5jbHVkZSA8YXNtL21taW8uaD4K Pj4KPj4gQEAgLTcwLDIzICs3MSwzOCBAQCBzdGF0aWMgaW50IGhhbmRsZV93cml0ZShjb25zdCBz dHJ1Y3QgbW1pb19oYW5kbGVyCj4gKmhhbmRsZXIsIHN0cnVjdCB2Y3B1ICp2LAo+PiBoYW5kbGVy LT5wcml2KTsKPj4gICB9Cj4+Cj4+IC1pbnQgaGFuZGxlX21taW8obW1pb19pbmZvX3QgKmluZm8p Cj4+ICtjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpmaW5kX21taW9faGFuZGxlcihzdHJ1Y3Qg dmNwdSAqdiwgcGFkZHJfdAo+IGFkZHIpCj4+ICAgewo+PiAtICAgIHN0cnVjdCB2Y3B1ICp2ID0g Y3VycmVudDsKPj4gLSAgICBpbnQgaTsKPj4gLSAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVy ICpoYW5kbGVyID0gTlVMTDsKPj4gICAgICAgY29uc3Qgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZ2 LT5kb21haW4tPmFyY2gudm1taW87Cj4+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAq aGFuZGxlciA9IHZtbWlvLT5oYW5kbGVyczsKPj4gKyAgICB1bnNpZ25lZCBpbnQgZWlkeCA9IHZt bWlvLT5udW1fZW50cmllczsKPj4gKyAgICB1bnNpZ25lZCBpbnQgbWlkeCA9IGVpZHggLyAyOwo+ PiArICAgIHVuc2lnbmVkIGludCBzaWR4ID0gMDsKPj4KPj4gLSAgICBmb3IgKCBpID0gMDsgaSA8 IHZtbWlvLT5udW1fZW50cmllczsgaSsrICkKPj4gKyAgICAvKiBEbyBiaW5hcnkgc2VhcmNoIGZv ciBtYXRjaGluZyBtbWlvIGhhbmRsZXIgKi8KPj4gKyAgICB3aGlsZSAoIHNpZHggIT0gbWlkeCAp Cj4+ICAgICAgIHsKPj4gLSAgICAgICAgaGFuZGxlciA9ICZ2bW1pby0+aGFuZGxlcnNbaV07Cj4+ IC0KPj4gLSAgICAgICAgaWYgKCAoaW5mby0+Z3BhID49IGhhbmRsZXItPmFkZHIpICYmCj4+IC0g ICAgICAgICAgICAgKGluZm8tPmdwYSA8IChoYW5kbGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkp ICkKPj4gLSAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBpZiAoIGFkZHIgPCBoYW5kbGVy W21pZHhdLmFkZHIgKQo+PiArICAgICAgICAgICAgZWlkeCA9IG1pZHg7Cj4+ICsgICAgICAgIGVs c2UKPj4gKyAgICAgICAgICAgIHNpZHggPSBtaWR4Owo+PiArICAgICAgICBtaWR4ID0gc2lkeCAr IChlaWR4IC0gc2lkeCkgLyAyOwo+Cj4gVGhpcyBiaW5hcnkgc2VhcmNoIGNhbiBiZSBzaW1wbGlm aWVkLiBGb3IgaW5zdGFuY2UsIHdoeSBkbyB5b3Ugd2FudCB0byAKPiBjb21wdXRlIG1pZHggYXQg dGhlIGVuZCByYXRoZXIgdGhhbiBhdCB0aGUgYmVnaW5uaW5nLiBUaGlzIHdvdWxkIGF2b2lkIAo+ IHRvIGhhdmUgInVuc2lnbmVkIGludCBtaWR4ID0gZWlkeCAvIDIiIGF0IHRoZSBiZWdpbm5pbmcu Cj4KCkxldCBtZSB0cnkgdG8gdXNlICJkbyB3aGlsZSgpIiBsb29wIGxvZ2ljIHRvIHNpbXBsaWZ5 IHRoZSBhYm92ZSBjb2RlIGxvZ2ljLgoKPj4gICAgICAgfQo+Pgo+PiAtICAgIGlmICggaSA9PSB2 bW1pby0+bnVtX2VudHJpZXMgKQo+PiArICAgIGlmICggKGFkZHIgPj0gaGFuZGxlcltzaWR4XS5h ZGRyKSAmJgo+PiArICAgICAgICAgKGFkZHIgPCAoaGFuZGxlcltzaWR4XS5hZGRyICsgaGFuZGxl cltzaWR4XS5zaXplKSkgKQo+PiArICAgICAgICByZXR1cm4gaGFuZGxlciArIHNpZHg7Cj4KPiBQ bGVhc2UgdXNlIGEgdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciBoYW5kbGVyW3NpZHhdLiBTbyBpdCB3 aWxsIGJlIAo+IGVhc2llciB0byByZWFkIHRoZSBjb2RlLgo+Cj4+ICsKPj4gKyAgICByZXR1cm4g TlVMTDsKPj4gK30KPj4gKwo+PiAraW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190ICppbmZvKQo+ PiArewo+PiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7Cj4+ICsgICAg c3RydWN0IHZjcHUgKnYgPSBjdXJyZW50Owo+PiArCj4+ICsgICAgaGFuZGxlciA9IGZpbmRfbW1p b19oYW5kbGVyKHYsIGluZm8tPmdwYSk7Cj4KPiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgc29tZSBs b2NraW5nIGhlcmUuIENvdWxkIHlvdSBleHBsYWluIHdoeSBpdCBpcyAKPiBzYWZlIHRvIGxvb2tp bmcgZmluZCB0aGUgaGFuZGxlciB3aXRoIHlvdXIgc29sdXRpb24/Cj4KPiBGb3Igd2hhdCBpcyB3 b3J0aCwgdGhlcmUgd2FzIG5vIGxvY2tpbmcgYmVmb3JlIGJlY2F1c2UgCj4gcmVnaXN0ZXJfbW1p b19oYW5kbGVyIHdhcyBhbHdheXMgYWRkaW5nIHRoZSBoYW5kbGVyIGF0IHRoZSBlbmQgb2YgdGhl IAo+IGFycmF5LiBUaGlzIGlzIG5vdCB0cnVlIGFueW1vcmUgYmVjYXVzZSB5b3UgYXJlIHNvcnRp bmcgdGhlIGFycmF5Lgo+CgpUaGUgZnVuY3Rpb24gcmVnaXN0ZXJfbW1pb19oYW5kbGVyKCkgaXMg Y2FsbGVkIG9ubHkgZHVyaW5nIGRvbTAvZG9tVSAKZG9tYWluIGJ1aWxkIGNvZGUgcGF0aC4gV2Ug ZG9uJ3QgbmVlZCBsb2NraW5nIGhlcmUgdW50aWwgdW5sZXNzIHNvbWUgCmNvZGUgaW5zZXJ0aW5n IG1taW8gaGFuZGxlcnMgYXQgcnVudGltZS4KCgoKPj4gKyAgICBpZiAoICFoYW5kbGVyICkKPj4g ICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAgICAgICBpZiAoIGluZm8tPmRhYnQud3JpdGUgKQo+ PiBAQCAtOTUsNiArMTExLDE0IEBAIGludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykK Pj4gICAgICAgICAgIHJldHVybiBoYW5kbGVfcmVhZChoYW5kbGVyLCB2LCBpbmZvKTsKPj4gICB9 Cj4+Cj4+ICtzdGF0aWMgaW50IGNtcF9tbWlvX2hhbmRsZXIoY29uc3Qgdm9pZCAqa2V5LCBjb25z dCB2b2lkICplbGVtKQo+PiArewo+PiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhh bmRsZXIwID0ga2V5Owo+PiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXIx ID0gZWxlbTsKPj4gKwo+PiArICAgIHJldHVybiAoaGFuZGxlcjAtPmFkZHIgPCBoYW5kbGVyMS0+ YWRkcikgPyAtMSA6IDA7Cj4+ICt9Cj4+ICsKPj4gICB2b2lkIHJlZ2lzdGVyX21taW9faGFuZGxl cihzdHJ1Y3QgZG9tYWluICpkLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBtbWlvX2hhbmRsZXJfb3BzICpvcHMsCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsIHZvaWQgKnByaXYpCj4+IEBAIC0xMjIs NiArMTQ2LDEwIEBAIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQs Cj4+Cj4+ICAgICAgIHZtbWlvLT5udW1fZW50cmllcysrOwo+Pgo+PiArICAgIC8qIFNvcnQgbW1p byBoYW5kbGVycyBpbiBhc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCj4+ ICsgICAgc29ydCh2bW1pby0+aGFuZGxlcnMsIHZtbWlvLT5udW1fZW50cmllcywgc2l6ZW9mKHN0 cnVjdAo+IG1taW9faGFuZGxlciksCj4+ICsgICAgICAgICBjbXBfbW1pb19oYW5kbGVyLCBOVUxM KTsKPj4gKwo+PiAgICAgICBzcGluX3VubG9jaygmdm1taW8tPmxvY2spOwo+PiAgIH0KPj4KPj4K Pgo+IFJlZ2FyZHMsCj4KCi0tIApTaGFua2VyIERvbnRoaW5lbmkKUXVhbGNvbW0gVGVjaG5vbG9n aWVzLCBJbmMuIG9uIGJlaGFsZiBvZiBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLgpR dWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9y YSBGb3J1bSwgYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==