From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Magenheimer Subject: [PATCH][RFC] sub-page anonymous domain memory allocator Date: Fri, 29 Aug 2008 10:12:27 -0700 (PDT) Message-ID: <2dac25a9-af17-445b-8a45-e055d8ebf71c@default> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="__1220029966430391acsmt702.oracle.com" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel mailing list List-Id: xen-devel@lists.xenproject.org --__1220029966430391acsmt702.oracle.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable This patch uses some #define-and-Makefile trickery to completely leverage common/xmalloc.c to provide a sub-page memory allocator that takes memory from anonymous domain heap instead of xen heap. Note that it is useful only on a 64-bit hypervisor. (Some other #define trickery can be used so that 32-bit hypervisor uses xenheap and 64-bit hypervisor uses adheap.) Keir says that a goal for 3.4 is to combine xen heap and domain heap on 64-bit hypervisors. This is a step in that direction that I am using today in some work that requires more memory than xenheap can provide (which I'll hopefully post sometime in the next few weeks). Comments? --__1220029966430391acsmt702.oracle.com Content-Type: application/octet-stream; name="admalloc.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="admalloc.patch" ZGlmZiAtciA1NjZlZTQ3M2ZjMjcgeGVuL2NvbW1vbi9NYWtlZmlsZQotLS0gYS94ZW4vY29tbW9u L01ha2VmaWxlCUZyaSBBdWcgMjIgMTA6NDU6MzAgMjAwOCArMDEwMAorKysgYi94ZW4vY29tbW9u L01ha2VmaWxlCUZyaSBBdWcgMjkgMTE6MDA6MzEgMjAwOCAtMDYwMApAQCAtMjcsNiArMjcsNyBA QCBvYmoteSArPSB2c3ByaW50Zi5vCiBvYmoteSArPSB2c3ByaW50Zi5vCiBvYmoteSArPSB4bWFs bG9jLm8KIG9iai15ICs9IHJjdXBkYXRlLm8KK29iai0kKHg4Nl82NCkgKz0gYWRtYWxsb2Mubwog CiBvYmotJChwZXJmYykgICAgICAgKz0gcGVyZmMubwogb2JqLSQoY3Jhc2hfZGVidWcpICs9IGdk YnN0dWIubwpAQCAtNDIsNiArNDMsOSBAQCBzdWJkaXItJChpYTY0KSArPSBodm0KIAogc3ViZGly LXkgKz0gbGliZWxmCiAKK2FkbWFsbG9jLm86IHhtYWxsb2MuYyAkKEhEUlMpIE1ha2VmaWxlCisJ JChDQykgLURBTk9OX0RPTUFJTiAkKENGTEFHUykgLWMgJDwgLW8gJEAKKwogIyBPYmplY3QgZmls ZSBjb250YWlucyBjaGFuZ2VzZXQgYW5kIGNvbXBpbGVyIGluZm9ybWF0aW9uLgogdmVyc2lvbi5v OiAkKEJBU0VESVIpL2luY2x1ZGUveGVuL2NvbXBpbGUuaAogCmRpZmYgLXIgNTY2ZWU0NzNmYzI3 IHhlbi9jb21tb24veG1hbGxvYy5jCi0tLSBhL3hlbi9jb21tb24veG1hbGxvYy5jCUZyaSBBdWcg MjIgMTA6NDU6MzAgMjAwOCArMDEwMAorKysgYi94ZW4vY29tbW9uL3htYWxsb2MuYwlGcmkgQXVn IDI5IDExOjAwOjMxIDIwMDggLTA2MDAKQEAgLTM1LDYgKzM1LDIxIEBACiAjaW5jbHVkZSA8eGVu L3ByZWZldGNoLmg+CiAjaW5jbHVkZSA8eGVuL2lycS5oPgogI2luY2x1ZGUgPHhlbi9zbXAuaD4K KworLyoKKyAqIGNvbWJpbmVkIHdpdGggTWFrZWZpbGUgdHJpY2tlcnksIGNyZWF0ZXMgeG1hbGxv Yy1lcXVpdmFsZW50IHJvdXRpbmVzCisgKiAoZS5nLiBhZG1hbGxvYy9hZGZyZWUpIHRoYXQgdXNl IGFub255bW91cyBkb21haW4gaGVhcCBpbnN0ZWFkCisgKiBvZiB4ZW4gaGVhcC4uLiB1c2VmdWwg b25seSBvbiB4ODZfNjQKKyAqLworI2lmZGVmIEFOT05fRE9NQUlOCisjaW5jbHVkZSA8eGVuL2Fk bWFsbG9jLmg+CisjZGVmaW5lIGFsbG9jX3hlbmhlYXBfcGFnZXMob3JkZXIpIGFsbG9jX2FkaGVh cF9wYWdlcyhvcmRlcikKKyN1bmRlZiBhbGxvY194ZW5oZWFwX3BhZ2UKKyNkZWZpbmUgYWxsb2Nf eGVuaGVhcF9wYWdlKCkgYWxsb2NfYWRoZWFwX3BhZ2VzKDApCisjZGVmaW5lIHhmcmVlIGFkZnJl ZQorI2RlZmluZSBfeG1hbGxvYyBfYWRtYWxsb2MKKyNkZWZpbmUgZnJlZV94ZW5oZWFwX3BhZ2Vz IGZyZWVfYWRoZWFwX3BhZ2VzCisjZW5kaWYKIAogLyoKICAqIFhNQUxMT0NfREVCVUc6CmRpZmYg LXIgNTY2ZWU0NzNmYzI3IHhlbi9pbmNsdWRlL3hlbi9hZG1hbGxvYy5oCi0tLSAvZGV2L251bGwJ VGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9hZG1h bGxvYy5oCUZyaSBBdWcgMjkgMTE6MDA6MzEgMjAwOCAtMDYwMApAQCAtMCwwICsxLDQ4IEBACisK KyNpZm5kZWYgX19BRE1BTExPQ19IX18KKyNkZWZpbmUgX19BRE1BTExPQ19IX18KKworLyogQWxs b2NhdGUgc3BhY2UgZm9yIHR5cGVkIG9iamVjdC4gKi8KKyNkZWZpbmUgYWRtYWxsb2MoX3R5cGUp ICgoX3R5cGUgKilfYWRtYWxsb2Moc2l6ZW9mKF90eXBlKSwgX19hbGlnbm9mX18oX3R5cGUpKSkK KworLyogQWxsb2NhdGUgc3BhY2UgZm9yIGFycmF5IG9mIHR5cGVkIG9iamVjdHMuICovCisjZGVm aW5lIGFkbWFsbG9jX2FycmF5KF90eXBlLCBfbnVtKSAoKF90eXBlICopX2FkbWFsbG9jX2FycmF5 KHNpemVvZihfdHlwZSksIF9fYWxpZ25vZl9fKF90eXBlKSwgX251bSkpCisKKy8qIEFsbG9jYXRl IHVudHlwZWQgc3RvcmFnZS4gKi8KKyNkZWZpbmUgYWRtYWxsb2NfYnl0ZXMoX2J5dGVzKSAoX2Fk bWFsbG9jKF9ieXRlcywgU01QX0NBQ0hFX0JZVEVTKSkKKworLyogRnJlZSBhbnkgb2YgdGhlIGFi b3ZlLiAqLworZXh0ZXJuIHZvaWQgYWRmcmVlKHZvaWQgKik7CisKKy8qIFVuZGVybHlpbmcgZnVu Y3Rpb25zICovCitleHRlcm4gdm9pZCAqX2FkbWFsbG9jKHNpemVfdCBzaXplLCBzaXplX3QgYWxp Z24pOworc3RhdGljIGlubGluZSB2b2lkICpfYWRtYWxsb2NfYXJyYXkoc2l6ZV90IHNpemUsIHNp emVfdCBhbGlnbiwgc2l6ZV90IG51bSkKK3sKKwkvKiBDaGVjayBmb3Igb3ZlcmZsb3cuICovCisJ aWYgKHNpemUgJiYgbnVtID4gVUlOVF9NQVggLyBzaXplKQorCQlyZXR1cm4gTlVMTDsKKyAJcmV0 dXJuIF9hZG1hbGxvYyhzaXplICogbnVtLCBhbGlnbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p ZCBmcmVlX2FkaGVhcF9wYWdlcyh2b2lkICp2LCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAg c3RydWN0IHBhZ2VfaW5mbyAqcGcgPSB2aXJ0X3RvX3BhZ2Uodik7CisKKyAgICBwYWdlX3NldF9v d25lcihwZywgTlVMTCk7CisgICAgZnJlZV9kb21oZWFwX3BhZ2VzKHZpcnRfdG9fcGFnZSh2KSwg b3JkZXIpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCB4bWFsbG9jX2hkciAqYWxsb2NfYWRo ZWFwX3BhZ2VzKHVuc2lnbmVkIGludCBvcmRlcikKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw ZyA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoTlVMTCwgb3JkZXIsIDApOworCisgICAgaWYgKHBnID09 IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIC8qIEZJWE1FIGlzIHRoaXMgcmlnaHQ/ ICovCisgICAgcmV0dXJuIChzdHJ1Y3QgeG1hbGxvY19oZHIgKilwYWdlX3RvX3ZpcnQocGcpOwor fQorCisjZGVmaW5lIGZyZWVfYWRoZWFwX3BhZ2UocGcpIGZyZWVfYWRoZWFwX3BhZ2VzKHBnLDAp CisjZGVmaW5lIGFsbG9jX2FkaGVhcF9wYWdlKCkgYWxsb2NfYWRoZWFwX3BhZ2VzKDApCisKKyNl bmRpZiAvKiBfX0FETUFMTE9DX0hfXyAqLwo= --__1220029966430391acsmt702.oracle.com Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --__1220029966430391acsmt702.oracle.com--