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:49:18 +0100 Message-ID: <5772562E.5050900@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"; Format="flowed" 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 , Vikram Sethi List-Id: xen-devel@lists.xenproject.org SGkgU2hhbmtlciwKCk9uIDI3LzA2LzE2IDIxOjMzLCBTaGFua2VyIERvbnRoaW5lbmkgd3JvdGU6 Cj4gQXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBh c3NvY2lhdGVkIHdpdGgKPiBsaW5lYXIgbG9va3VwIGFsc28gaW5jcmVhc2VzLiBUaGUgc3lzdGVt IG1pZ2h0IGhhdmUgbWF4aW11bSBvZiAxNDQKPiAoYXNzdW1pbmcgQ09ORklHX05SX0NQVVM9MTI4 KSBtbWlvIGhhbmRsZXJzLiBJbiB3b3JzdCBjYXNlIHNjZW5hcmlvLAo+IGl0IHdvdWxkIHJlcXVp cmUgMTQ0IGl0ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKPiBp dCBpcyB0aW1lIGZvciB1cyB0byBjaGFuZ2UgZnJvbSBsaW5lYXIgKGNvbXBsZXhpdHkgTyhuKSkg dG8gYSBiaW5hcnkKPiBzZWFyY2ggKGNvbXBsZXhpdHkgTyhsb2cgbikgZm9yIHJlZHVjaW5nIG1t aW8gaGFuZGxlciBsb29rdXAgb3ZlcmhlYWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFua2VyIERv bnRoaW5lbmkgPHNoYW5rZXJkQGNvZGVhdXJvcmEub3JnPgo+IC0tLQo+IENoYW5nZXMgc2luY2Ug djI6Cj4gICAgQ29udmVydGVkIG1taW8gbG9va3VwIGNvZGUgdG8gYSBjcml0aWNhbCBzZWN0aW9u Lgo+ICAgIENvcGllZCB0aGUgZnVuY3Rpb24gYnNyZWFjaCgpIGZyb20gTGludXgga2VybmVsLgo+ Cj4gICB4ZW4vYXJjaC9hcm0vaW8uYyB8IDk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA4NCBpbnNlcnRp b25zKCspLCAxMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW8u YyBiL3hlbi9hcmNoL2FybS9pby5jCj4gaW5kZXggYTViMmMyZC4uYzMxZmRmMyAxMDA2NDQKPiAt LS0gYS94ZW4vYXJjaC9hcm0vaW8uYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9pby5jCj4gQEAgLTIw LDkgKzIwLDUwIEBACj4gICAjaW5jbHVkZSA8eGVuL2xpYi5oPgo+ICAgI2luY2x1ZGUgPHhlbi9z cGlubG9jay5oPgo+ICAgI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgo+ICsjaW5jbHVkZSA8eGVuL3Nv cnQuaD4KPiAgICNpbmNsdWRlIDxhc20vY3VycmVudC5oPgo+ICAgI2luY2x1ZGUgPGFzbS9tbWlv Lmg+Cj4KPiArLyoKPiArICogYnNlYXJjaCAtIGJpbmFyeSBzZWFyY2ggYW4gYXJyYXkgb2YgZWxl bWVudHMKPiArICogQGtleTogcG9pbnRlciB0byBpdGVtIGJlaW5nIHNlYXJjaGVkIGZvcgo+ICsg KiBAYmFzZTogcG9pbnRlciB0byBmaXJzdCBlbGVtZW50IHRvIHNlYXJjaAo+ICsgKiBAbnVtOiBu dW1iZXIgb2YgZWxlbWVudHMKPiArICogQHNpemU6IHNpemUgb2YgZWFjaCBlbGVtZW50Cj4gKyAq IEBjbXA6IHBvaW50ZXIgdG8gY29tcGFyaXNvbiBmdW5jdGlvbgo+ICsgKgo+ICsgKiBUaGlzIGZ1 bmN0aW9uIGRvZXMgYSBiaW5hcnkgc2VhcmNoIG9uIHRoZSBnaXZlbiBhcnJheS4gIFRoZQo+ICsg KiBjb250ZW50cyBvZiB0aGUgYXJyYXkgc2hvdWxkIGFscmVhZHkgYmUgaW4gYXNjZW5kaW5nIHNv cnRlZCBvcmRlcgo+ICsgKiB1bmRlciB0aGUgcHJvdmlkZWQgY29tcGFyaXNvbiBmdW5jdGlvbi4K PiArICoKPiArICogTm90ZSB0aGF0IHRoZSBrZXkgbmVlZCBub3QgaGF2ZSB0aGUgc2FtZSB0eXBl IGFzIHRoZSBlbGVtZW50cyBpbgo+ICsgKiB0aGUgYXJyYXksIGUuZy4ga2V5IGNvdWxkIGJlIGEg c3RyaW5nIGFuZCB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbgo+ICsgKiBjb3VsZCBjb21wYXJlIHRo ZSBzdHJpbmcgd2l0aCB0aGUgc3RydWN0J3MgbmFtZSBmaWVsZC4gIEhvd2V2ZXIsIGlmCj4gKyAq IHRoZSBrZXkgYW5kIGVsZW1lbnRzIGluIHRoZSBhcnJheSBhcmUgb2YgdGhlIHNhbWUgdHlwZSwg eW91IGNhbiB1c2UKPiArICogdGhlIHNhbWUgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgYm90aCBz b3J0KCkgYW5kIGJzZWFyY2goKS4KPiArICovCj4gK3N0YXRpYyB2b2lkICpic2VhcmNoKGNvbnN0 IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqYmFzZSwgc2l6ZV90IG51bSwgc2l6ZV90IHNpemUsCj4g KyAgICAgICAgICAgICAgICAgICAgIGludCAoKmNtcCkoY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2 b2lkICplbHQpKQoKVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3BlY2lmaWMgdG8gSS9PIGhhbmRsZXJz LiBTbyB0aGlzIHNob3VsZCBiZSBtb3ZlZCAKdG8gY29tbW9uIGNvZGUuIEFsc28gcGxlYXNlIG1l bnRpb24gaW4gdGhlIGNvbW1pdCBtZXNzYWdlIHdoZXJlIHRoZSBjb2RlIApjYW1lIGZyb20uCgo+ ICt7Cj4gKyAgICBzaXplX3Qgc3RhcnQgPSAwLCBlbmQgPSBudW07Cj4gKyAgICBpbnQgcmVzdWx0 Owo+ICsKPiArICAgIHdoaWxlICggc3RhcnQgPCBlbmQgKQo+ICsgICAgewo+ICsgICAgICAgIHNp emVfdCBtaWQgPSBzdGFydCArIChlbmQgLSBzdGFydCkgLyAyOwo+ICsKPiArICAgICAgICByZXN1 bHQgPSBjbXAoa2V5LCBiYXNlICsgbWlkICogc2l6ZSk7Cj4gKyAgICAgICAgaWYgKCByZXN1bHQg PCAwICkKPiArICAgICAgICAgICAgZW5kID0gbWlkOwo+ICsgICAgICAgIGVsc2UgaWYgKCByZXN1 bHQgPiAwICkKPiArICAgICAgICAgICAgc3RhcnQgPSBtaWQgKyAxOwo+ICsgICAgICAgIGVsc2UK PiArICAgICAgICAgICAgcmV0dXJuICh2b2lkICopYmFzZSArIG1pZCAqIHNpemU7Cj4gKyAgICB9 Cj4gKwo+ICsgICAgcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gICBzdGF0aWMgaW50IGhhbmRsZV9y ZWFkKGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXIsIHN0cnVjdCB2Y3B1ICp2LAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICBtbWlvX2luZm9fdCAqaW5mbykKPiAgIHsKPiBAQCAt NzAsMjMgKzExMSw0MSBAQCBzdGF0aWMgaW50IGhhbmRsZV93cml0ZShjb25zdCBzdHJ1Y3QgbW1p b19oYW5kbGVyICpoYW5kbGVyLCBzdHJ1Y3QgdmNwdSAqdiwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoYW5kbGVyLT5wcml2KTsKPiAgIH0KPgo+IC1pbnQgaGFuZGxlX21taW8o bW1pb19pbmZvX3QgKmluZm8pCj4gK3N0YXRpYyBpbnQgbWF0Y2hfbW1pb19oYW5kbGVyKGNvbnN0 IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqZWxlbSkKPiAgIHsKPiAtICAgIHN0cnVjdCB2Y3B1ICp2 ID0gY3VycmVudDsKPiAtICAgIGludCBpOwo+IC0gICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxl ciAqaGFuZGxlciA9IE5VTEw7Cj4gLSAgICBjb25zdCBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJnYt PmRvbWFpbi0+YXJjaC52bW1pbzsKPiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhh bmRsZXIgPSBlbGVtOwo+ICsgICAgcGFkZHJfdCBhZGRyID0gKHBhZGRyX3Qpa2V5Owo+Cj4gLSAg ICBmb3IgKCBpID0gMDsgaSA8IHZtbWlvLT5udW1fZW50cmllczsgaSsrICkKPiAtICAgIHsKPiAt ICAgICAgICBoYW5kbGVyID0gJnZtbWlvLT5oYW5kbGVyc1tpXTsKPiArICAgIGlmICggYWRkciA8 IGhhbmRsZXItPmFkZHIgKQo+ICsgICAgICAgIHJldHVybiAtMTsKPgo+IC0gICAgICAgIGlmICgg KGluZm8tPmdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgo+IC0gICAgICAgICAgICAgKGluZm8tPmdw YSA8IChoYW5kbGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkpICkKPiAtICAgICAgICAgICAgYnJl YWs7Cj4gLSAgICB9Cj4gKyAgICBpZiAoIGFkZHIgPiAoaGFuZGxlci0+YWRkciArIGhhbmRsZXIt PnNpemUpICkKPiArICAgICAgICByZXR1cm4gMTsKPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ Cj4gLSAgICBpZiAoIGkgPT0gdm1taW8tPm51bV9lbnRyaWVzICkKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBtbWlvX2hhbmRsZXIgKgo+ICtmaW5kX21taW9faGFuZGxlcihzdHJ1Y3QgdmNwdSAqdiwg cGFkZHJfdCBhZGRyKQo+ICt7Cj4gKyAgICBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJnYtPmRvbWFp bi0+YXJjaC52bW1pbzsKPiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7 Cj4gKwo+ICsgICAgc3Bpbl9sb2NrKCZ2bW1pby0+bG9jayk7Cj4gKyAgICBoYW5kbGVyID0gYnNl YXJjaCgoY29uc3Qgdm9pZCAqKWFkZHIsIHZtbWlvLT5oYW5kbGVycywgdm1taW8tPm51bV9lbnRy aWVzLAoKcGFkZHJfdCBpcyBhbHdheXMgNjQtYml0IHJlZ2FyZGxlc3MgdGhlIGFyY2hpdGVjdHVy ZSAoQVJNNjQgdnMgQVJNMzIpLiAKU28gdGhlIGNhc3Qgd2lsbCBsZWFkIHRvIGEgY29tcGlsYXRp b24gZXJyb3Igb24gQVJNMzIuCgpQbGVhc2UgdHJ5IHRvIGF0IGxlYXN0IGNvbXBpbGUgdGVzdCB5 b3VyIHBhdGNoIHdpdGggQVJNNjQsIEFSTTMyIGFuZCB4ODYgCih3aGVuIHlvdSB0b3VjaCBjb21t b24gY29kZSkuCgpBbnl3YXksIEkgd291bGQgdHJ5IHRvIG1lcmdlIHRoZSB0d28gY29tcGFyZSBm dW5jdGlvbnMgCihtYXRjaF9tbWlvX2hhbmRsZXIsIGNtcF9tbWlvX2hhbmRsZXIpIHdoaWNoIGhh dmUgdmVyeSBzaW1pbGFyIGJlaGF2aW9yLgoKPiArICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZigqaGFuZGxlciksIG1hdGNoX21taW9faGFuZGxlcik7Cj4gKyAgICBzcGluX3VubG9jaygmdm1t aW8tPmxvY2spOwo+ICsKPiArICAgIHJldHVybiBoYW5kbGVyOwo+ICt9Cj4gKwo+ICtpbnQgaGFu ZGxlX21taW8obW1pb19pbmZvX3QgKmluZm8pCj4gK3sKPiArICAgIGNvbnN0IHN0cnVjdCBtbWlv X2hhbmRsZXIgKmhhbmRsZXI7Cj4gKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Cj4gKwo+ ICsgICAgaGFuZGxlciA9IGZpbmRfbW1pb19oYW5kbGVyKHYsIGluZm8tPmdwYSk7Cj4gKyAgICBp ZiAoICFoYW5kbGVyICkKPiAgICAgICAgICAgcmV0dXJuIDA7Cj4KPiAgICAgICBpZiAoIGluZm8t PmRhYnQud3JpdGUgKQo+IEBAIC05NSw2ICsxNTQsMTQgQEAgaW50IGhhbmRsZV9tbWlvKG1taW9f aW5mb190ICppbmZvKQo+ICAgICAgICAgICByZXR1cm4gaGFuZGxlX3JlYWQoaGFuZGxlciwgdiwg aW5mbyk7Cj4gICB9Cj4KPiArc3RhdGljIGludCBjbXBfbW1pb19oYW5kbGVyKGNvbnN0IHZvaWQg KmtleSwgY29uc3Qgdm9pZCAqZWxlbSkKPiArewo+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFu ZGxlciAqaGFuZGxlcjAgPSBrZXk7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpo YW5kbGVyMSA9IGVsZW07Cj4gKwo+ICsgICAgcmV0dXJuIChoYW5kbGVyMC0+YWRkciA8IGhhbmRs ZXIxLT5hZGRyKSA/IC0xIDogMDsKPiArfQo+ICsKPiAgIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5k bGVyKHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgbW1pb19oYW5kbGVyX29wcyAqb3BzLAo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsIHZvaWQgKnByaXYpCj4gQEAgLTEyMiw2 ICsxODksMTAgQEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwK Pgo+ICAgICAgIHZtbWlvLT5udW1fZW50cmllcysrOwo+Cj4gKyAgICAvKiBTb3J0IG1taW8gaGFu ZGxlcnMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIGJhc2UgYWRkcmVzcyAqLwo+ICsgICAg c29ydCh2bW1pby0+aGFuZGxlcnMsIHZtbWlvLT5udW1fZW50cmllcywgc2l6ZW9mKHN0cnVjdCBt bWlvX2hhbmRsZXIpLAo+ICsgICAgICAgICBjbXBfbW1pb19oYW5kbGVyLCBOVUxMKTsKPiArCj4g ICAgICAgc3Bpbl91bmxvY2soJnZtbWlvLT5sb2NrKTsKPiAgIH0KPgo+CgpSZWdhcmRzLAoKLS0g Ckp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK