From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: Re: [PATCH V3 09/10] xen/arm: io: Use binary search for mmio handler lookup Date: Tue, 28 Jun 2016 08:19:56 -0500 Message-ID: <5772797C.7040806@codeaurora.org> References: <1467059622-14786-1-git-send-email-shankerd@codeaurora.org> <1467059622-14786-9-git-send-email-shankerd@codeaurora.org> <5772562E.5050900@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: <5772562E.5050900@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 CkhpIEp1bGllbiwKCk9uIDA2LzI4LzIwMTYgMDU6NDkgQU0sIEp1bGllbiBHcmFsbCB3cm90ZToK PiBIaSBTaGFua2VyLAo+Cj4gT24gMjcvMDYvMTYgMjE6MzMsIFNoYW5rZXIgRG9udGhpbmVuaSB3 cm90ZToKPj4gQXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVy aGVhZCBhc3NvY2lhdGVkIHdpdGgKPj4gbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhl IHN5c3RlbSBtaWdodCBoYXZlIG1heGltdW0gb2YgMTQ0Cj4+IChhc3N1bWluZyBDT05GSUdfTlJf Q1BVUz0xMjgpIG1taW8gaGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCj4+IGl0IHdv dWxkIHJlcXVpcmUgMTQ0IGl0ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVy LiBOb3cKPj4gaXQgaXMgdGltZSBmb3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4 aXR5IE8obikpIHRvIGEgYmluYXJ5Cj4+IHNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3Ig cmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxvb2t1cCBvdmVyaGVhZC4KPj4KPj4gU2lnbmVkLW9mZi1i eTogU2hhbmtlciBEb250aGluZW5pIDxzaGFua2VyZEBjb2RlYXVyb3JhLm9yZz4KPj4gLS0tCj4+ IENoYW5nZXMgc2luY2UgdjI6Cj4+ICAgIENvbnZlcnRlZCBtbWlvIGxvb2t1cCBjb2RlIHRvIGEg Y3JpdGljYWwgc2VjdGlvbi4KPj4gICAgQ29waWVkIHRoZSBmdW5jdGlvbiBic3JlYWNoKCkgZnJv bSBMaW51eCBrZXJuZWwuCj4+Cj4+ICAgeGVuL2FyY2gvYXJtL2lvLmMgfCA5Nwo+ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPj4gICAxIGZp bGUgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vaW8uYyBiL3hlbi9hcmNoL2FybS9pby5jCj4+IGluZGV4IGE1 YjJjMmQuLmMzMWZkZjMgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pby5jCj4+ICsrKyBi L3hlbi9hcmNoL2FybS9pby5jCj4+IEBAIC0yMCw5ICsyMCw1MCBAQAo+PiAgICNpbmNsdWRlIDx4 ZW4vbGliLmg+Cj4+ICAgI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgo+PiAgICNpbmNsdWRlIDx4 ZW4vc2NoZWQuaD4KPj4gKyNpbmNsdWRlIDx4ZW4vc29ydC5oPgo+PiAgICNpbmNsdWRlIDxhc20v Y3VycmVudC5oPgo+PiAgICNpbmNsdWRlIDxhc20vbW1pby5oPgo+Pgo+PiArLyoKPj4gKyAqIGJz ZWFyY2ggLSBiaW5hcnkgc2VhcmNoIGFuIGFycmF5IG9mIGVsZW1lbnRzCj4+ICsgKiBAa2V5OiBw b2ludGVyIHRvIGl0ZW0gYmVpbmcgc2VhcmNoZWQgZm9yCj4+ICsgKiBAYmFzZTogcG9pbnRlciB0 byBmaXJzdCBlbGVtZW50IHRvIHNlYXJjaAo+PiArICogQG51bTogbnVtYmVyIG9mIGVsZW1lbnRz Cj4+ICsgKiBAc2l6ZTogc2l6ZSBvZiBlYWNoIGVsZW1lbnQKPj4gKyAqIEBjbXA6IHBvaW50ZXIg dG8gY29tcGFyaXNvbiBmdW5jdGlvbgo+PiArICoKPj4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBh IGJpbmFyeSBzZWFyY2ggb24gdGhlIGdpdmVuIGFycmF5LiAgVGhlCj4+ICsgKiBjb250ZW50cyBv ZiB0aGUgYXJyYXkgc2hvdWxkIGFscmVhZHkgYmUgaW4gYXNjZW5kaW5nIHNvcnRlZCBvcmRlcgo+ PiArICogdW5kZXIgdGhlIHByb3ZpZGVkIGNvbXBhcmlzb24gZnVuY3Rpb24uCj4+ICsgKgo+PiAr ICogTm90ZSB0aGF0IHRoZSBrZXkgbmVlZCBub3QgaGF2ZSB0aGUgc2FtZSB0eXBlIGFzIHRoZSBl bGVtZW50cyBpbgo+PiArICogdGhlIGFycmF5LCBlLmcuIGtleSBjb3VsZCBiZSBhIHN0cmluZyBh bmQgdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24KPj4gKyAqIGNvdWxkIGNvbXBhcmUgdGhlIHN0cmlu ZyB3aXRoIHRoZSBzdHJ1Y3QncyBuYW1lIGZpZWxkLiBIb3dldmVyLCBpZgo+PiArICogdGhlIGtl eSBhbmQgZWxlbWVudHMgaW4gdGhlIGFycmF5IGFyZSBvZiB0aGUgc2FtZSB0eXBlLCB5b3UgY2Fu IHVzZQo+PiArICogdGhlIHNhbWUgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgYm90aCBzb3J0KCkg YW5kIGJzZWFyY2goKS4KPj4gKyAqLwo+PiArc3RhdGljIHZvaWQgKmJzZWFyY2goY29uc3Qgdm9p ZCAqa2V5LCBjb25zdCB2b2lkICpiYXNlLCBzaXplX3QgbnVtLAo+IHNpemVfdCBzaXplLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgaW50ICgqY21wKShjb25zdCB2b2lkICprZXksIGNvbnN0IHZv aWQgKmVsdCkpCj4KPiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzcGVjaWZpYyB0byBJL08gaGFuZGxl cnMuIFNvIHRoaXMgc2hvdWxkIGJlIG1vdmVkIAo+IHRvIGNvbW1vbiBjb2RlLiBBbHNvIHBsZWFz ZSBtZW50aW9uIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aGVyZSB0aGUgCj4gY29kZSBjYW1lIGZy b20uCj4KClNob3VsZCBJIG1vdmUgdG8geGVuL2FyY2gvYXJtIGZvbGRlcj8KCj4+ICt7Cj4+ICsg ICAgc2l6ZV90IHN0YXJ0ID0gMCwgZW5kID0gbnVtOwo+PiArICAgIGludCByZXN1bHQ7Cj4+ICsK Pj4gKyAgICB3aGlsZSAoIHN0YXJ0IDwgZW5kICkKPj4gKyAgICB7Cj4+ICsgICAgICAgIHNpemVf dCBtaWQgPSBzdGFydCArIChlbmQgLSBzdGFydCkgLyAyOwo+PiArCj4+ICsgICAgICAgIHJlc3Vs dCA9IGNtcChrZXksIGJhc2UgKyBtaWQgKiBzaXplKTsKPj4gKyAgICAgICAgaWYgKCByZXN1bHQg PCAwICkKPj4gKyAgICAgICAgICAgIGVuZCA9IG1pZDsKPj4gKyAgICAgICAgZWxzZSBpZiAoIHJl c3VsdCA+IDAgKQo+PiArICAgICAgICAgICAgc3RhcnQgPSBtaWQgKyAxOwo+PiArICAgICAgICBl bHNlCj4+ICsgICAgICAgICAgICByZXR1cm4gKHZvaWQgKiliYXNlICsgbWlkICogc2l6ZTsKPj4g KyAgICB9Cj4+ICsKPj4gKyAgICByZXR1cm4gTlVMTDsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBp bnQgaGFuZGxlX3JlYWQoY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlciwgc3RydWN0 IHZjcHUKPiAqdiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIG1taW9faW5mb190ICppbmZv KQo+PiAgIHsKPj4gQEAgLTcwLDIzICsxMTEsNDEgQEAgc3RhdGljIGludCBoYW5kbGVfd3JpdGUo Y29uc3Qgc3RydWN0IG1taW9faGFuZGxlcgo+ICpoYW5kbGVyLCBzdHJ1Y3QgdmNwdSAqdiwKPj4g aGFuZGxlci0+cHJpdik7Cj4+ICAgfQo+Pgo+PiAtaW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190 ICppbmZvKQo+PiArc3RhdGljIGludCBtYXRjaF9tbWlvX2hhbmRsZXIoY29uc3Qgdm9pZCAqa2V5 LCBjb25zdCB2b2lkICplbGVtKQo+PiAgIHsKPj4gLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJl bnQ7Cj4+IC0gICAgaW50IGk7Cj4+IC0gICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFu ZGxlciA9IE5VTEw7Cj4+IC0gICAgY29uc3Qgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZ2LT5kb21h aW4tPmFyY2gudm1taW87Cj4+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxl ciA9IGVsZW07Cj4+ICsgICAgcGFkZHJfdCBhZGRyID0gKHBhZGRyX3Qpa2V5Owo+Pgo+PiAtICAg IGZvciAoIGkgPSAwOyBpIDwgdm1taW8tPm51bV9lbnRyaWVzOyBpKysgKQo+PiAtICAgIHsKPj4g LSAgICAgICAgaGFuZGxlciA9ICZ2bW1pby0+aGFuZGxlcnNbaV07Cj4+ICsgICAgaWYgKCBhZGRy IDwgaGFuZGxlci0+YWRkciApCj4+ICsgICAgICAgIHJldHVybiAtMTsKPj4KPj4gLSAgICAgICAg aWYgKCAoaW5mby0+Z3BhID49IGhhbmRsZXItPmFkZHIpICYmCj4+IC0gICAgICAgICAgICAgKGlu Zm8tPmdwYSA8IChoYW5kbGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkpICkKPj4gLSAgICAgICAg ICAgIGJyZWFrOwo+PiAtICAgIH0KPj4gKyAgICBpZiAoIGFkZHIgPiAoaGFuZGxlci0+YWRkciAr IGhhbmRsZXItPnNpemUpICkKPj4gKyAgICAgICAgcmV0dXJuIDE7Cj4+ICsKPj4gKyAgICByZXR1 cm4gMDsKPj4gK30KPj4KPj4gLSAgICBpZiAoIGkgPT0gdm1taW8tPm51bV9lbnRyaWVzICkKPj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICoKPj4gK2ZpbmRfbW1pb19oYW5kbGVy KHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGFkZHIpCj4+ICt7Cj4+ICsgICAgc3RydWN0IHZtbWlv ICp2bW1pbyA9ICZ2LT5kb21haW4tPmFyY2gudm1taW87Cj4+ICsgICAgY29uc3Qgc3RydWN0IG1t aW9faGFuZGxlciAqaGFuZGxlcjsKPj4gKwo+PiArICAgIHNwaW5fbG9jaygmdm1taW8tPmxvY2sp Owo+PiArICAgIGhhbmRsZXIgPSBic2VhcmNoKChjb25zdCB2b2lkICopYWRkciwgdm1taW8tPmhh bmRsZXJzLAo+IHZtbWlvLT5udW1fZW50cmllcywKPgo+IHBhZGRyX3QgaXMgYWx3YXlzIDY0LWJp dCByZWdhcmRsZXNzIHRoZSBhcmNoaXRlY3R1cmUgKEFSTTY0IHZzIEFSTTMyKS4gCj4gU28gdGhl IGNhc3Qgd2lsbCBsZWFkIHRvIGEgY29tcGlsYXRpb24gZXJyb3Igb24gQVJNMzIuCj4KCkknbGwg Zml4LgoKPiBQbGVhc2UgdHJ5IHRvIGF0IGxlYXN0IGNvbXBpbGUgdGVzdCB5b3VyIHBhdGNoIHdp dGggQVJNNjQsIEFSTTMyIGFuZCAKPiB4ODYgKHdoZW4geW91IHRvdWNoIGNvbW1vbiBjb2RlKS4K PgoKVGhhbmtzLCBJJ2xsIGZvbGxvdyBuZXh0IHRpbWUuCgo+IEFueXdheSwgSSB3b3VsZCB0cnkg dG8gbWVyZ2UgdGhlIHR3byBjb21wYXJlIGZ1bmN0aW9ucyAKPiAobWF0Y2hfbW1pb19oYW5kbGVy LCBjbXBfbW1pb19oYW5kbGVyKSB3aGljaCBoYXZlIHZlcnkgc2ltaWxhciBiZWhhdmlvci4KPgoK WWVzLCB0aGV5IGFyZSBub3QgZXhhY3RseSBzYW1lLiBPbmUgY29tcGFyZXMgb25seSBzdGFydCBh ZGRyZXNzIGFuZCAKb3RoZXIgb25lIGNvbXBhcmVzIHRoZSByYW5nZS4KCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKCpoYW5kbGVyKSwgbWF0Y2hfbW1pb19oYW5kbGVyKTsKPj4gKyAg ICBzcGluX3VubG9jaygmdm1taW8tPmxvY2spOwo+PiArCj4+ICsgICAgcmV0dXJuIGhhbmRsZXI7 Cj4+ICt9Cj4+ICsKPj4gK2ludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykKPj4gK3sK Pj4gKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOwo+PiArICAgIHN0cnVj dCB2Y3B1ICp2ID0gY3VycmVudDsKPj4gKwo+PiArICAgIGhhbmRsZXIgPSBmaW5kX21taW9faGFu ZGxlcih2LCBpbmZvLT5ncGEpOwo+PiArICAgIGlmICggIWhhbmRsZXIgKQo+PiAgICAgICAgICAg cmV0dXJuIDA7Cj4+Cj4+ICAgICAgIGlmICggaW5mby0+ZGFidC53cml0ZSApCj4+IEBAIC05NSw2 ICsxNTQsMTQgQEAgaW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190ICppbmZvKQo+PiAgICAgICAg ICAgcmV0dXJuIGhhbmRsZV9yZWFkKGhhbmRsZXIsIHYsIGluZm8pOwo+PiAgIH0KPj4KPj4gK3N0 YXRpYyBpbnQgY21wX21taW9faGFuZGxlcihjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKmVs ZW0pCj4+ICt7Cj4+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjAgPSBr ZXk7Cj4+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjEgPSBlbGVtOwo+ PiArCj4+ICsgICAgcmV0dXJuIChoYW5kbGVyMC0+YWRkciA8IGhhbmRsZXIxLT5hZGRyKSA/IC0x IDogMDsKPj4gK30KPj4gKwo+PiAgIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBk b21haW4gKmQsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG1t aW9faGFuZGxlcl9vcHMgKm9wcywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRk cl90IGFkZHIsIHBhZGRyX3Qgc2l6ZSwgdm9pZCAqcHJpdikKPj4gQEAgLTEyMiw2ICsxODksMTAg QEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKPj4KPj4gICAg ICAgdm1taW8tPm51bV9lbnRyaWVzKys7Cj4+Cj4+ICsgICAgLyogU29ydCBtbWlvIGhhbmRsZXJz IGluIGFzY2VuZGluZyBvcmRlciBiYXNlZCBvbiBiYXNlIGFkZHJlc3MgKi8KPj4gKyAgICBzb3J0 KHZtbWlvLT5oYW5kbGVycywgdm1taW8tPm51bV9lbnRyaWVzLCBzaXplb2Yoc3RydWN0Cj4gbW1p b19oYW5kbGVyKSwKPj4gKyAgICAgICAgIGNtcF9tbWlvX2hhbmRsZXIsIE5VTEwpOwo+PiArCj4+ ICAgICAgIHNwaW5fdW5sb2NrKCZ2bW1pby0+bG9jayk7Cj4+ICAgfQo+Pgo+Pgo+Cj4gUmVnYXJk cywKPgoKLS0gClNoYW5rZXIgRG9udGhpbmVuaQpRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4g b24gYmVoYWxmIG9mIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuClF1YWxjb21tIElu bm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIENvZGUgQXVyb3JhIEZvcnVtLCBh IExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK