From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v5 1/4] xen: introduce a helper to allocate non-contiguous memory Date: Fri, 8 May 2015 15:50:05 +0100 Message-ID: <554CCD1D.9040309@citrix.com> References: <1431095651-25935-1-git-send-email-roger.pau@citrix.com> <1431095651-25935-2-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YqjbP-0002a3-DO for xen-devel@lists.xenproject.org; Fri, 08 May 2015 14:50:11 +0000 In-Reply-To: <1431095651-25935-2-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Roger Pau Monne , xen-devel@lists.xenproject.org Cc: Tim Deegan , Stefano Stabellini , Ian Campbell , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMDgvMDUvMTUgMTU6MzQsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToKPiBUaGUgYWxsb2NhdG9y IHVzZXMgaW5kZXBlbmRlbnQgY2FsbHMgdG8gYWxsb2NfZG9taGVhcF9wYWdlcyBpbiBvcmRlciB0 byBnZXQKPiB0aGUgZGVzaXJlZCBhbW91bnQgb2YgbWVtb3J5IGFuZCB0aGVuIG1hcHMgYWxsIHRo ZSBpbmRlcGVuZGVudCBwaHlzaWNhbAo+IGFkZHJlc3NlcyBpbnRvIGEgY29udGlndW91cyB2aXJ0 dWFsIGFkZHJlc3Mgc3BhY2UuCj4KPiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxy b2dlci5wYXVAY2l0cml4LmNvbT4KPiBUZXN0ZWQtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy YWxsQGNpdHJpeC5jb20+IChBUk0pCj4gQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5z dGFiZWxsaW5pQGNpdHJpeC5jb20+Cj4gQ2M6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNp dHJpeC5jb20+Cj4gQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBDYzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+Cj4gQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBzaW5jZSB2NDoKPiAgLSBSZW1vdmUgdGhlIHJl ZC1ibGFjayB0cmVlLCB0aGUgc2FtZSBjYW4gYmUgYWNoaWV2ZWQgYnkgZG9pbmcgYSBWQSAtPiBN Rk4KPiAgICB0cmFuc2xhdGlvbi4KPiAgLSBQcm92aWRlIGEgdnphbGxvYyB0aGF0IHplcm9lcyB0 aGUgYWxsb2NhdGVkIG1lbW9yeSBhcmVhLgo+ICAtIEFsbG9jYXRlIGRvbWhlYXAgYW5ub255bW91 cyBwYWdlcy4KPiAtLS0KPiAgeGVuL2NvbW1vbi92bWFwLmMgICAgICAgICAgfCAgMiArLQo+ICB4 ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jICB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgeGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oICAgfCAgMiAr Kwo+ICB4ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCB8ICAyICsrCj4gIHhlbi9pbmNsdWRlL3hl bi92bWFwLmggICAgIHwgIDEgKwo+ICB4ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oICB8ICA0ICsr Kwo+ICA2IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPgo+ IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZtYXAuYyBiL3hlbi9jb21tb24vdm1hcC5jCj4gaW5k ZXggNzM5ZDQ2OC4uMjQ4Y2VlYyAxMDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3ZtYXAuYwo+ICsr KyBiL3hlbi9jb21tb24vdm1hcC5jCj4gQEAgLTE0Niw3ICsxNDYsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgaW50IHZtX2luZGV4KGNvbnN0IHZvaWQgKnZhKQo+ICAgICAgICAgICAgIHRlc3RfYml0KGlk eCwgdm1fYml0bWFwKSA/IGlkeCA6IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQg dm1fc2l6ZShjb25zdCB2b2lkICp2YSkKPiArdW5zaWduZWQgaW50IHZtX3NpemUoY29uc3Qgdm9p ZCAqdmEpCj4gIHsKPiAgICAgIHVuc2lnbmVkIGludCBzdGFydCA9IHZtX2luZGV4KHZhKSwgZW5k Owo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94bWFsbG9jX3Rsc2YuYyBiL3hlbi9jb21t b24veG1hbGxvY190bHNmLmMKPiBpbmRleCBiMTMzMTdlLi5mZTMwMzJlIDEwMDY0NAo+IC0tLSBh L3hlbi9jb21tb24veG1hbGxvY190bHNmLmMKPiArKysgYi94ZW4vY29tbW9uL3htYWxsb2NfdGxz Zi5jCj4gQEAgLTI3LDYgKzI3LDcgQEAKPiAgI2luY2x1ZGUgPHhlbi9pcnEuaD4KPiAgI2luY2x1 ZGUgPHhlbi9tbS5oPgo+ICAjaW5jbHVkZSA8eGVuL3Bmbi5oPgo+ICsjaW5jbHVkZSA8eGVuL3Zt YXAuaD4KPiAgI2luY2x1ZGUgPGFzbS90aW1lLmg+Cj4gIAo+ICAjZGVmaW5lIE1BWF9QT09MX05B TUVfTEVOICAgICAgIDE2Cj4gQEAgLTYxMyw2ICs2MTQsMTMgQEAgdm9pZCAqX3h6YWxsb2ModW5z aWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKQo+ICAgICAgcmV0dXJuIHAgPyBt ZW1zZXQocCwgMCwgc2l6ZSkgOiBwOwo+ICB9Cj4gIAo+ICt2b2lkICp2emFsbG9jKHVuc2lnbmVk IGxvbmcgc2l6ZSkKPiArewo+ICsgICAgdm9pZCAqcCA9IHZtYWxsb2Moc2l6ZSk7Cj4gKwo+ICsg ICAgcmV0dXJuIHAgPyBtZW1zZXQocCwgMCwgc2l6ZSkgOiBwOwo+ICt9Cj4gKwo+ICB2b2lkIHhm cmVlKHZvaWQgKnApCj4gIHsKPiAgICAgIHN0cnVjdCBiaGRyICpiOwo+IEBAIC02NTEsMyArNjU5 LDU3IEBAIHZvaWQgeGZyZWUodm9pZCAqcCkKPiAgCj4gICAgICB4bWVtX3Bvb2xfZnJlZShwLCB4 ZW5wb29sKTsKPiAgfQo+ICsKPiArdm9pZCAqdm1hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUpCj4g K3sKPiArICAgIHVuc2lnbmVkIGxvbmcgKm1mbjsKPiArICAgIHVuc2lnbmVkIGxvbmcgcGFnZXMs IGk7Cj4gKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKPiArICAgIHZvaWQgKnZhID0gTlVMTDsK PiArCj4gKyAgICBBU1NFUlQoIWluX2lycSgpKTsKPiArCj4gKyAgICBpZiAoIHNpemUgPT0gMCAp Cj4gKyAgICAgICAgcmV0dXJuIFpFUk9fQkxPQ0tfUFRSOwo+ICsKPiArICAgIHBhZ2VzID0gRElW X1JPVU5EX1VQKHNpemUsIFBBR0VfU0laRSk7Cj4gKyAgICBtZm4gPSB4emFsbG9jX2FycmF5KHVu c2lnbmVkIGxvbmcsIHBhZ2VzKTsKClRoaXMgY2FuIGF2b2lkIHRoZSB6ZXJvaW5nIGlmLi4uCgo+ ICsgICAgaWYgKCBtZm4gPT0gTlVMTCApCj4gKyAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsg ICAgZm9yICggaSA9IDA7IGkgPCBwYWdlczsgaSsrICkKPiArICAgIHsKPiArICAgICAgICBwZyA9 IGFsbG9jX2RvbWhlYXBfcGFnZXMoTlVMTCwgMSwgMCk7Cj4gKyAgICAgICAgaWYgKCBwZyA9PSBO VUxMICkKPiArICAgICAgICAgICAgZ290byBlcnJvcjsKPiArICAgICAgICBtZm5baV0gPSBwYWdl X3RvX21mbihwZyk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgdmEgPSB2bWFwKG1mbiwgcGFnZXMpOwo+ ICsgICAgaWYgKCB2YSA9PSBOVUxMICkKPiArICAgICAgICBnb3RvIGVycm9yOwo+ICsKPiArICAg IHhmcmVlKG1mbik7Cj4gKyAgICByZXR1cm4gdmE7Cj4gKwo+ICsgZXJyb3I6Cj4gKyAgICB2dW5t YXAodmEpOwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBwYWdlczsgaSsrICkKPiArICAgICAgICBp ZiAoIG1mbltpXSAhPSAwICkKPiArICAgICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2VzKG1mbl90 b19wYWdlKG1mbltpXSksIDEpOwoKdGhpcyBsb29wIHR1cm5zIGludG8KCndoaWxlICggaSApCiAg ICBmcmVlX2RvbWhlYXBfcGFnZXMobWZuX3RvX3BhZ2UobWZuWy0taV0sIDEpOwoKYW5kIGV2ZW4g YXZvaWRzIHRoZSBjb25kaXRpb25hbC4KCldoYXQgaXMgdGhlIGV4cGVjdGVkIG1heCB2YWx1ZSBv ZiBwYWdlcz8gIEdpdmVuIHRoYXQgb3VyIGh5cGVydmlzb3IKc3RhY2tzIGFyZSBxdWl0ZSBsYXJn ZSwgaXQgbWlnaHQgYmUgcHJ1ZGVudCB0byB1c2UgQzk5IHZhcmlhYmxlIGxlbmd0aAphcnJheXMg KHdpdGggYW4gYXBwcm9wcmlhdGUgQlVHX09OKCkpIHRvIGF2b2lkIHRoZSB4YWxsb2MoKSBhbHRv Z2V0aGVyLgoKPiArICAgIHhmcmVlKG1mbik7Cj4gKyAgICByZXR1cm4gTlVMTDsKPiArfQo+ICsK PiArdm9pZCB2ZnJlZSh2b2lkICp2YSkKPiArewo+ICsgICAgdW5zaWduZWQgaW50IGksIHBhZ2Vz ID0gdm1fc2l6ZSh2YSk7Cj4gKwo+ICsgICAgaWYgKCBwYWdlcyA9PSAwICkKPiArICAgICAgICBy ZXR1cm47Cj4gKwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBwYWdlczsgaSsrICkKPiArICAgICAg ICBmcmVlX2RvbWhlYXBfcGFnZXModm1hcF90b19wYWdlKHZhICsgaSAqIFBBR0VfU0laRSksIDEp Owo+ICsKPiArICAgIHZ1bm1hcCh2YSk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9tbS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCj4gaW5kZXggZDI1ZTQ4NS4u YzBhZmNlYyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKPiArKysgYi94 ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKPiBAQCAtMjA4LDYgKzIwOCw4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHBhZGRyX3Qgc3RhcnQsIHNpemVfdCBsZW4pCj4g ICNkZWZpbmUgcGZuX3RvX3BhZGRyKHBmbikgKChwYWRkcl90KShwZm4pIDw8IFBBR0VfU0hJRlQp Cj4gICNkZWZpbmUgcGFkZHJfdG9fcGZuKHBhKSAgKCh1bnNpZ25lZCBsb25nKSgocGEpID4+IFBB R0VfU0hJRlQpKQo+ICAjZGVmaW5lIHBhZGRyX3RvX3BkeChwYSkgICAgcGZuX3RvX3BkeChwYWRk cl90b19wZm4ocGEpKQo+ICsjZGVmaW5lIHZtYXBfdG9fbWZuKHZhKSAgICAgcGFkZHJfdG9fcGZu KHZpcnRfdG9fbWFkZHIoKHZhZGRyX3QpdmEpKQo+ICsjZGVmaW5lIHZtYXBfdG9fcGFnZSh2YSkg ICAgbWZuX3RvX3BhZ2Uodm1hcF90b19tZm4odmEpKQo+ICAKPiAgLyogUGFnZS1hbGlnbiBhZGRy ZXNzIGFuZCBjb252ZXJ0IHRvIGZyYW1lIG51bWJlciBmb3JtYXQgKi8KPiAgI2RlZmluZSBwYWRk cl90b19wZm5fYWxpZ25lZChwYWRkcikgICAgcGFkZHJfdG9fcGZuKFBBR0VfQUxJR04ocGFkZHIp KQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvcGFnZS5oCj4gaW5kZXggYThiYzk5OS4uODk3N2E3NiAxMDA2NDQKPiAtLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFn ZS5oCj4gQEAgLTI2Miw2ICsyNjIsOCBAQCB2b2lkIGNvcHlfcGFnZV9zc2UyKHZvaWQgKiwgY29u c3Qgdm9pZCAqKTsKPiAgI2RlZmluZSBwZm5fdG9fcGFkZHIocGZuKSAgIF9fcGZuX3RvX3BhZGRy KHBmbikKPiAgI2RlZmluZSBwYWRkcl90b19wZm4ocGEpICAgIF9fcGFkZHJfdG9fcGZuKHBhKQo+ ICAjZGVmaW5lIHBhZGRyX3RvX3BkeChwYSkgICAgcGZuX3RvX3BkeChwYWRkcl90b19wZm4ocGEp KQo+ICsjZGVmaW5lIHZtYXBfdG9fbWZuKHZhKSAgICAgbDFlX2dldF9wZm4oKnZpcnRfdG9feGVu X2wxZSgodW5zaWduZWQgbG9uZykodmEpKSkKPiArI2RlZmluZSB2bWFwX3RvX3BhZ2UodmEpICAg IG1mbl90b19wYWdlKHZtYXBfdG9fbWZuKHZhKSkKPiAgCj4gICNlbmRpZiAvKiAhZGVmaW5lZChf X0FTU0VNQkxZX18pICovCj4gIAo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vdm1hcC5o IGIveGVuL2luY2x1ZGUveGVuL3ZtYXAuaAo+IGluZGV4IGIxOTIzZGQuLmJjNWM4NjIgMTAwNjQ0 Cj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3ZtYXAuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92 bWFwLmgKPiBAQCAtMTEsNiArMTEsNyBAQCB2b2lkICpfX3ZtYXAoY29uc3QgdW5zaWduZWQgbG9u ZyAqbWZuLCB1bnNpZ25lZCBpbnQgZ3JhbnVsYXJpdHksCj4gICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgbnIsIHVuc2lnbmVkIGludCBhbGlnbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKPiAgdm9p ZCAqdm1hcChjb25zdCB1bnNpZ25lZCBsb25nICptZm4sIHVuc2lnbmVkIGludCBucik7Cj4gIHZv aWQgdnVubWFwKGNvbnN0IHZvaWQgKik7Cj4gK3Vuc2lnbmVkIGludCB2bV9zaXplKGNvbnN0IHZv aWQgKnZhKTsKPiAgCj4gIHZvaWQgX19pb21lbSAqaW9yZW1hcChwYWRkcl90LCBzaXplX3QpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaCBiL3hlbi9pbmNsdWRl L3hlbi94bWFsbG9jLmgKPiBpbmRleCAyNGE5OWFjLi5iZTE1N2JmIDEwMDY0NAo+IC0tLSBhL3hl bi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKPiArKysgYi94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5o Cj4gQEAgLTMwLDYgKzMwLDEwIEBAIGV4dGVybiB2b2lkIHhmcmVlKHZvaWQgKik7Cj4gIGV4dGVy biB2b2lkICpfeG1hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24p Owo+ICBleHRlcm4gdm9pZCAqX3h6YWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBs b25nIGFsaWduKTsKPiAgCj4gK3ZvaWQgKnZtYWxsb2ModW5zaWduZWQgbG9uZyBzaXplKTsKPiAr dm9pZCAqdnphbGxvYyh1bnNpZ25lZCBsb25nIHNpemUpOwoKSSB3b3VsZCBzdWdnZXN0IHNpemVf dCB0byBmb3IgY2xvc2VyIGNvbnNpc3RlbmN5IHdpdGggQy4KCn5BbmRyZXcKCj4gK3ZvaWQgdmZy ZWUodm9pZCAqdmEpOwo+ICsKPiAgc3RhdGljIGlubGluZSB2b2lkICpfeG1hbGxvY19hcnJheSgK PiAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbiwgdW5zaWduZWQg bG9uZyBudW0pCj4gIHsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=