From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH V4 10/11] xen/arm: io: Use binary search for mmio handler lookup Date: Thu, 14 Jul 2016 17:46:02 +0100 Message-ID: <5787C1CA.6050003@arm.com> References: <1468513081-12002-1-git-send-email-shankerd@codeaurora.org> <1468513081-12002-2-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: <1468513081-12002-2-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 SGkgU2hhbmtlciwKCk9uIDE0LzA3LzE2IDE3OjE4LCBTaGFua2VyIERvbnRoaW5lbmkgd3JvdGU6 Cj4gQXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBh c3NvY2lhdGVkIHdpdGgKPiBsaW5lYXIgbG9va3VwIGFsc28gaW5jcmVhc2VzLiBUaGUgc3lzdGVt IG1pZ2h0IGhhdmUgbWF4aW11bSBvZiAxNDQKPiAoYXNzdW1pbmcgQ09ORklHX05SX0NQVVM9MTI4 KSBtbWlvIGhhbmRsZXJzLiBJbiB3b3JzdCBjYXNlIHNjZW5hcmlvLAo+IGl0IHdvdWxkIHJlcXVp cmUgMTQ0IGl0ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKPiBp dCBpcyB0aW1lIGZvciB1cyB0byBjaGFuZ2UgZnJvbSBsaW5lYXIgKGNvbXBsZXhpdHkgTyhuKSkg dG8gYSBiaW5hcnkKPiBzZWFyY2ggKGNvbXBsZXhpdHkgTyhsb2cgbikgZm9yIHJlZHVjaW5nIG1t aW8gaGFuZGxlciBsb29rdXAgb3ZlcmhlYWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFua2VyIERv bnRoaW5lbmkgPHNoYW5rZXJkQGNvZGVhdXJvcmEub3JnPgo+IC0tLQo+IENoYW5nZXMgc2luY2Ug djM6Cj4gICAgTW92ZWQgdGhlIGZ1bmN0aW9uIGJzZWFyY2goKSB0byBjb21tb24gZmlsZSB4ZW4v Y29tbW9uL2JzZWFyY2guYy4KPgo+IENoYW5nZXMgc2luY2UgdjI6Cj4gICAgQ29udmVydGVkIG1t aW8gbG9va3VwIGNvZGUgdG8gYSBjcml0aWNhbCBzZWN0aW9uLgo+ICAgIENvcGllZCB0aGUgZnVu Y3Rpb24gYnNyZWFjaCgpIGZyb20gTGludXgga2VybmVsLgo+Cj4gICB4ZW4vYXJjaC9hcm0vaW8u YyB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBm aWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS9pby5jIGIveGVuL2FyY2gvYXJtL2lvLmMKPiBpbmRleCA0MDMz MGYwLi4wNDcxYmE4IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9pby5jCj4gKysrIGIveGVu L2FyY2gvYXJtL2lvLmMKPiBAQCAtMjAsNiArMjAsOCBAQAo+ICAgI2luY2x1ZGUgPHhlbi9saWIu aD4KPiAgICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KPiAgICNpbmNsdWRlIDx4ZW4vc2NoZWQu aD4KPiArI2luY2x1ZGUgPHhlbi9zb3J0Lmg+Cj4gKyNpbmNsdWRlIDx4ZW4vYnNlYXJjaC5oPgo+ ICAgI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+Cj4gICAjaW5jbHVkZSA8YXNtL21taW8uaD4KPgo+ IEBAIC03MCwyNyArNzIsMjkgQEAgc3RhdGljIGludCBoYW5kbGVfd3JpdGUoY29uc3Qgc3RydWN0 IG1taW9faGFuZGxlciAqaGFuZGxlciwgc3RydWN0IHZjcHUgKnYsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlci0+cHJpdik7Cj4gICB9Cj4KPiAtc3RhdGljIGNvbnN0 IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmZpbmRfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQs Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YWRkcl90IGdwYSkKPiArc3RhdGljIGludCBjbXBfbW1pb19oYW5kbGVyKGNvbnN0IHZvaWQgKmtl eSwgY29uc3Qgdm9pZCAqZWxlbSkKCldvdWxkIGl0IGJlIHdvcnRoIHRvIG1lbnRpb24gaW4gYSBj b21tZW50IHRoYXQgd2UgZG9uJ3Qgc3VwcG9ydCBvdmVybGFwcGluZz8KCj4gICB7Cj4gLSAgICBj b25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOwo+IC0gICAgdW5zaWduZWQgaW50IGk7 Cj4gLSAgICBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJmQtPmFyY2gudm1taW87Cj4gKyAgICBjb25z dCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyMCA9IGtleTsKPiArICAgIGNvbnN0IHN0cnVj dCBtbWlvX2hhbmRsZXIgKmhhbmRsZXIxID0gZWxlbTsKPgo+IC0gICAgcmVhZF9sb2NrKCZ2bW1p by0+bG9jayk7Cj4gKyAgICBpZiAoIGhhbmRsZXIwLT5hZGRyIDwgaGFuZGxlcjEtPmFkZHIgKQo+ ICsgICAgICAgIHJldHVybiAtMTsKPgo+IC0gICAgZm9yICggaSA9IDA7IGkgPCB2bW1pby0+bnVt X2VudHJpZXM7IGkrKyApCj4gLSAgICB7Cj4gLSAgICAgICAgaGFuZGxlciA9ICZ2bW1pby0+aGFu ZGxlcnNbaV07Cj4gKyAgICBpZiAoIGhhbmRsZXIwLT5hZGRyID4gKGhhbmRsZXIxLT5hZGRyICsg aGFuZGxlcjEtPnNpemUpICkKPiArICAgICAgICByZXR1cm4gMTsKPgo+IC0gICAgICAgIGlmICgg KGdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgo+IC0gICAgICAgICAgICAgKGdwYSA8IChoYW5kbGVy LT5hZGRyICsgaGFuZGxlci0+c2l6ZSkpICkKPiAtICAgICAgICAgICAgYnJlYWs7Cj4gLSAgICB9 Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+Cj4gLSAgICBpZiAoIGkgPT0gdm1taW8tPm51bV9lbnRy aWVzICkKPiAtICAgICAgICBoYW5kbGVyID0gTlVMTDsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBt bWlvX2hhbmRsZXIgKmZpbmRfbW1pb19oYW5kbGVyKHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGdw YSkKCldoeSBoYXZlIHlvdSBjaGFuZ2VkIHRoZSBwcm90b3R5cGUgb2YgZmluZF9tbWlvX2hhbmRs ZXI/Cgo+ICt7Cj4gKyAgICBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJnYtPmRvbWFpbi0+YXJjaC52 bW1pbzsKPiArICAgIHN0cnVjdCBtbWlvX2hhbmRsZXIga2V5ID0gey5hZGRyID0gZ3BhfTsKCkkg a25vdyBpdCBpcyBub3QgY3VycmVudGx5IHRoZSBjYXNlLCBidXQgc2hvdWxkIG5vdCB3ZSB0YWtl IGludG8gYWNjb3VudCAKdGhlIHNpemUgb2YgdGhlIGFjY2Vzcz8KCj4gKyAgICBjb25zdCBzdHJ1 Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOwo+Cj4gKyAgICByZWFkX2xvY2soJnZtbWlvLT5sb2Nr KTsKPiArICAgIGhhbmRsZXIgPSBic2VhcmNoKCZrZXksIHZtbWlvLT5oYW5kbGVycywgdm1taW8t Pm51bV9lbnRyaWVzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpoYW5kbGVyKSwg Y21wX21taW9faGFuZGxlcik7Cj4gICAgICAgcmVhZF91bmxvY2soJnZtbWlvLT5sb2NrKTsKPgo+ ICAgICAgIHJldHVybiBoYW5kbGVyOwo+IEBAIC05OSw5ICsxMDMsOSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG1taW9faGFuZGxlciAqZmluZF9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwK PiAgIGludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykKPiAgIHsKPiAgICAgICBzdHJ1 Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Cj4gLSAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpo YW5kbGVyID0gTlVMTDsKPiArICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7 CgpXaHkgdGhpcyBjaGFuZ2U/Cgo+Cj4gLSAgICBoYW5kbGVyID0gZmluZF9tbWlvX2hhbmRsZXIo di0+ZG9tYWluLCBpbmZvLT5ncGEpOwo+ICsgICAgaGFuZGxlciA9IGZpbmRfbW1pb19oYW5kbGVy KHYsIGluZm8tPmdwYSk7CgpkaXR0by4KCj4gICAgICAgaWYgKCAhaGFuZGxlciApCj4gICAgICAg ICAgIHJldHVybiAwOwo+Cj4gQEAgLTEzMSw2ICsxMzUsMTAgQEAgdm9pZCByZWdpc3Rlcl9tbWlv X2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKPgo+ICAgICAgIHZtbWlvLT5udW1fZW50cmllcysr Owo+Cj4gKyAgICAvKiBTb3J0IG1taW8gaGFuZGxlcnMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2Vk IG9uIGJhc2UgYWRkcmVzcyAqLwo+ICsgICAgc29ydCh2bW1pby0+aGFuZGxlcnMsIHZtbWlvLT5u dW1fZW50cmllcywgc2l6ZW9mKHN0cnVjdCBtbWlvX2hhbmRsZXIpLAo+ICsgICAgICAgIGNtcF9t bWlvX2hhbmRsZXIsIE5VTEwpOwoKVGhlIGluZGVudGF0aW9uIGxvb2tzIHdyb25nIGhlcmUuCgo+ ICsKPiAgICAgICB3cml0ZV91bmxvY2soJnZtbWlvLT5sb2NrKTsKPiAgIH0KPgo+CgotLSAKSnVs aWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK