From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH V2 09/10] xen/arm: io: Use binary search for mmio handler lookup Date: Mon, 27 Jun 2016 14:31:53 +0100 Message-ID: <57712AC9.8050302@arm.com> References: <1466963303-10850-1-git-send-email-shankerd@codeaurora.org> <1466963303-10850-10-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: <1466963303-10850-10-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 SGkgU2hhbmtlciwKCk9uIDI2LzA2LzE2IDE4OjQ4LCBTaGFua2VyIERvbnRoaW5lbmkgd3JvdGU6 Cj4gQXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBh c3NvY2lhdGVkIHdpdGgKPiBsaW5lYXIgbG9va3VwIGFsc28gaW5jcmVhc2VzLiBUaGUgc3lzdGVt IG1pZ2h0IGhhdmUgbWF4aW11bSBvZiAxNDQKPiAoYXNzdW1pbmcgQ09ORklHX05SX0NQVVM9MTI4 KSBtbWlvIGhhbmRsZXJzLiBJbiB3b3JzdCBjYXNlIHNjZW5hcmlvLAo+IGl0IHdvdWxkIHJlcXVp cmUgMTQ0IGl0ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKPiBp dCBpcyB0aW1lIGZvciB1cyB0byBjaGFuZ2UgZnJvbSBsaW5lYXIgKGNvbXBsZXhpdHkgTyhuKSkg dG8gYSBiaW5hcnkKPiBzZWFyY2ggKGNvbXBsZXhpdHkgTyhsb2cgbikgZm9yIHJlZHVjaW5nIG1t aW8gaGFuZGxlciBsb29rdXAgb3ZlcmhlYWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFua2VyIERv bnRoaW5lbmkgPHNoYW5rZXJkQGNvZGVhdXJvcmEub3JnPgo+IC0tLQo+ICAgeGVuL2FyY2gvYXJt L2lvLmMgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pby5jIGIveGVuL2FyY2gvYXJtL2lvLmMK PiBpbmRleCBhNWIyYzJkLi5hYmY0OWZiIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9pby5j Cj4gKysrIGIveGVuL2FyY2gvYXJtL2lvLmMKPiBAQCAtMjAsNiArMjAsNyBAQAo+ICAgI2luY2x1 ZGUgPHhlbi9saWIuaD4KPiAgICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KPiAgICNpbmNsdWRl IDx4ZW4vc2NoZWQuaD4KPiArI2luY2x1ZGUgPHhlbi9zb3J0Lmg+Cj4gICAjaW5jbHVkZSA8YXNt L2N1cnJlbnQuaD4KPiAgICNpbmNsdWRlIDxhc20vbW1pby5oPgo+Cj4gQEAgLTcwLDIzICs3MSwz OCBAQCBzdGF0aWMgaW50IGhhbmRsZV93cml0ZShjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpo YW5kbGVyLCBzdHJ1Y3QgdmNwdSAqdiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoYW5kbGVyLT5wcml2KTsKPiAgIH0KPgo+IC1pbnQgaGFuZGxlX21taW8obW1pb19pbmZvX3Qg KmluZm8pCj4gK2NvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmZpbmRfbW1pb19oYW5kbGVyKHN0 cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGFkZHIpCj4gICB7Cj4gLSAgICBzdHJ1Y3QgdmNwdSAqdiA9 IGN1cnJlbnQ7Cj4gLSAgICBpbnQgaTsKPiAtICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIg KmhhbmRsZXIgPSBOVUxMOwo+ICAgICAgIGNvbnN0IHN0cnVjdCB2bW1pbyAqdm1taW8gPSAmdi0+ ZG9tYWluLT5hcmNoLnZtbWlvOwo+ICsgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFu ZGxlciA9IHZtbWlvLT5oYW5kbGVyczsKPiArICAgIHVuc2lnbmVkIGludCBlaWR4ID0gdm1taW8t Pm51bV9lbnRyaWVzOwo+ICsgICAgdW5zaWduZWQgaW50IG1pZHggPSBlaWR4IC8gMjsKPiArICAg IHVuc2lnbmVkIGludCBzaWR4ID0gMDsKPgo+IC0gICAgZm9yICggaSA9IDA7IGkgPCB2bW1pby0+ bnVtX2VudHJpZXM7IGkrKyApCj4gKyAgICAvKiBEbyBiaW5hcnkgc2VhcmNoIGZvciBtYXRjaGlu ZyBtbWlvIGhhbmRsZXIgKi8KPiArICAgIHdoaWxlICggc2lkeCAhPSBtaWR4ICkKPiAgICAgICB7 Cj4gLSAgICAgICAgaGFuZGxlciA9ICZ2bW1pby0+aGFuZGxlcnNbaV07Cj4gLQo+IC0gICAgICAg IGlmICggKGluZm8tPmdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgo+IC0gICAgICAgICAgICAgKGlu Zm8tPmdwYSA8IChoYW5kbGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkpICkKPiAtICAgICAgICAg ICAgYnJlYWs7Cj4gKyAgICAgICAgaWYgKCBhZGRyIDwgaGFuZGxlclttaWR4XS5hZGRyICkKPiAr ICAgICAgICAgICAgZWlkeCA9IG1pZHg7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBz aWR4ID0gbWlkeDsKPiArICAgICAgICBtaWR4ID0gc2lkeCArIChlaWR4IC0gc2lkeCkgLyAyOwoK VGhpcyBiaW5hcnkgc2VhcmNoIGNhbiBiZSBzaW1wbGlmaWVkLiBGb3IgaW5zdGFuY2UsIHdoeSBk byB5b3Ugd2FudCB0byAKY29tcHV0ZSBtaWR4IGF0IHRoZSBlbmQgcmF0aGVyIHRoYW4gYXQgdGhl IGJlZ2lubmluZy4gVGhpcyB3b3VsZCBhdm9pZCAKdG8gaGF2ZSAidW5zaWduZWQgaW50IG1pZHgg PSBlaWR4IC8gMiIgYXQgdGhlIGJlZ2lubmluZy4KCj4gICAgICAgfQo+Cj4gLSAgICBpZiAoIGkg PT0gdm1taW8tPm51bV9lbnRyaWVzICkKPiArICAgIGlmICggKGFkZHIgPj0gaGFuZGxlcltzaWR4 XS5hZGRyKSAmJgo+ICsgICAgICAgICAoYWRkciA8IChoYW5kbGVyW3NpZHhdLmFkZHIgKyBoYW5k bGVyW3NpZHhdLnNpemUpKSApCj4gKyAgICAgICAgcmV0dXJuIGhhbmRsZXIgKyBzaWR4OwoKUGxl YXNlIHVzZSBhIHRlbXBvcmFyeSB2YXJpYWJsZSBmb3IgaGFuZGxlcltzaWR4XS4gU28gaXQgd2ls bCBiZSBlYXNpZXIgCnRvIHJlYWQgdGhlIGNvZGUuCgo+ICsKPiArICAgIHJldHVybiBOVUxMOwo+ ICt9Cj4gKwo+ICtpbnQgaGFuZGxlX21taW8obW1pb19pbmZvX3QgKmluZm8pCj4gK3sKPiArICAg IGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7Cj4gKyAgICBzdHJ1Y3QgdmNwdSAq diA9IGN1cnJlbnQ7Cj4gKwo+ICsgICAgaGFuZGxlciA9IGZpbmRfbW1pb19oYW5kbGVyKHYsIGlu Zm8tPmdwYSk7CgpJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgc29tZSBsb2NraW5nIGhlcmUuIENvdWxk IHlvdSBleHBsYWluIHdoeSBpdCBpcyAKc2FmZSB0byBsb29raW5nIGZpbmQgdGhlIGhhbmRsZXIg d2l0aCB5b3VyIHNvbHV0aW9uPwoKRm9yIHdoYXQgaXMgd29ydGgsIHRoZXJlIHdhcyBubyBsb2Nr aW5nIGJlZm9yZSBiZWNhdXNlIApyZWdpc3Rlcl9tbWlvX2hhbmRsZXIgd2FzIGFsd2F5cyBhZGRp bmcgdGhlIGhhbmRsZXIgYXQgdGhlIGVuZCBvZiB0aGUgCmFycmF5LiBUaGlzIGlzIG5vdCB0cnVl IGFueW1vcmUgYmVjYXVzZSB5b3UgYXJlIHNvcnRpbmcgdGhlIGFycmF5LgoKPiArICAgIGlmICgg IWhhbmRsZXIgKQo+ICAgICAgICAgICByZXR1cm4gMDsKPgo+ICAgICAgIGlmICggaW5mby0+ZGFi dC53cml0ZSApCj4gQEAgLTk1LDYgKzExMSwxNCBAQCBpbnQgaGFuZGxlX21taW8obW1pb19pbmZv X3QgKmluZm8pCj4gICAgICAgICAgIHJldHVybiBoYW5kbGVfcmVhZChoYW5kbGVyLCB2LCBpbmZv KTsKPiAgIH0KPgo+ICtzdGF0aWMgaW50IGNtcF9tbWlvX2hhbmRsZXIoY29uc3Qgdm9pZCAqa2V5 LCBjb25zdCB2b2lkICplbGVtKQo+ICt7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVy ICpoYW5kbGVyMCA9IGtleTsKPiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRs ZXIxID0gZWxlbTsKPiArCj4gKyAgICByZXR1cm4gKGhhbmRsZXIwLT5hZGRyIDwgaGFuZGxlcjEt PmFkZHIpID8gLTEgOiAwOwo+ICt9Cj4gKwo+ICAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIo c3RydWN0IGRvbWFpbiAqZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBtbWlvX2hhbmRsZXJfb3BzICpvcHMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90IGFkZHIsIHBhZGRyX3Qgc2l6ZSwgdm9pZCAqcHJpdikKPiBAQCAtMTIyLDYgKzE0 NiwxMCBAQCB2b2lkIHJlZ2lzdGVyX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLAo+Cj4g ICAgICAgdm1taW8tPm51bV9lbnRyaWVzKys7Cj4KPiArICAgIC8qIFNvcnQgbW1pbyBoYW5kbGVy cyBpbiBhc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCj4gKyAgICBzb3J0 KHZtbWlvLT5oYW5kbGVycywgdm1taW8tPm51bV9lbnRyaWVzLCBzaXplb2Yoc3RydWN0IG1taW9f aGFuZGxlciksCj4gKyAgICAgICAgIGNtcF9tbWlvX2hhbmRsZXIsIE5VTEwpOwo+ICsKPiAgICAg ICBzcGluX3VubG9jaygmdm1taW8tPmxvY2spOwo+ICAgfQo+Cj4KClJlZ2FyZHMsCgotLSAKSnVs aWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=