From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 16/19] mini-os: map page allocator's bitmap to virtual kernel area for ballooning Date: Thu, 11 Aug 2016 13:06:36 +0200 Message-ID: <1470913597-30133-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: Juergen Gross , samuel.thibault@ens-lyon.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org SW4gY2FzZSBvZiBDT05GSUdfQkFMTE9PTiB0aGUgcGFnZSBhbGxvY2F0b3IncyBiaXRtYXAgbmVl ZHMgc29tZSBzcGFjZQp0byBiZSBhYmxlIHRvIGdyb3cuIFJlbWFwIGl0IHRvIGtlcm5lbCB2aXJ0 dWFsIGFyZWEgaWYgdGhlIHByZWFsbG9jYXRlZAphcmVhIGlzbid0IGxhcmdlIGVub3VnaC4KClNp Z25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tClY0OiAtIG1t X2JpdG1hcCogLT4gbW1fYWxsb2NfYml0bWFwKiBhcyByZXF1ZXN0ZWQgYnkgU2FtdWVsIFRoaWJh dWx0CgpWMzogLSBhZGQgYXNzZXJ0aW9uIGFzIHJlcXVlc3RlZCBieSBTYW11ZWwgVGhpYmF1bHQK ICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyB0byBoYXZlIG1tXyBwcmVmaXggYXMgcmVxdWVzdGVkIGJ5 IFNhbXVlbCBUaGliYXVsdAotLS0KIGJhbGxvb24uYyAgICAgICAgIHwgMTggKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL2JhbGxvb24uaCB8ICAyICsrCiBpbmNsdWRlL21tLmggICAgICB8ICA2 ICsrKysrKwogbW0uYyAgICAgICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAy MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9iYWxsb29uLmMgYi9iYWxsb29uLmMKaW5kZXgg MWVjMTEzZC4uMGEzMzQyYyAxMDA2NDQKLS0tIGEvYmFsbG9vbi5jCisrKyBiL2JhbGxvb24uYwpA QCAtNDQsMyArNDQsMjEgQEAgdm9pZCBnZXRfbWF4X3BhZ2VzKHZvaWQpCiAgICAgbnJfbWF4X3Bh Z2VzID0gcmV0OwogICAgIHByaW50aygiTWF4aW11bSBtZW1vcnkgc2l6ZTogJWxkIHBhZ2VzXG4i LCBucl9tYXhfcGFnZXMpOwogfQorCit2b2lkIG1tX2FsbG9jX2JpdG1hcF9yZW1hcCh2b2lkKQor eworICAgIHVuc2lnbmVkIGxvbmcgaTsKKworICAgIGlmICggbW1fYWxsb2NfYml0bWFwX3NpemUg Pj0gKChucl9tYXhfcGFnZXMgKyAxKSA+PiAoUEFHRV9TSElGVCArIDMpKSApCisgICAgICAgIHJl dHVybjsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgbW1fYWxsb2NfYml0bWFwX3NpemU7IGkgKz0g UEFHRV9TSVpFICkKKyAgICB7CisgICAgICAgIG1hcF9mcmFtZV9ydyh2aXJ0X2tlcm5lbF9hcmVh X2VuZCArIGksCisgICAgICAgICAgICAgICAgICAgICB2aXJ0X3RvX21mbigodW5zaWduZWQgbG9u ZykobW1fYWxsb2NfYml0bWFwKSArIGkpKTsKKyAgICB9CisKKyAgICBtbV9hbGxvY19iaXRtYXAg PSAodW5zaWduZWQgbG9uZyAqKXZpcnRfa2VybmVsX2FyZWFfZW5kOworICAgIHZpcnRfa2VybmVs X2FyZWFfZW5kICs9IHJvdW5kX3BndXAoKG5yX21heF9wYWdlcyArIDEpID4+IChQQUdFX1NISUZU ICsgMykpOworICAgIEFTU0VSVCh2aXJ0X2tlcm5lbF9hcmVhX2VuZCA8PSBWSVJUX0RFTUFORF9B UkVBKTsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmFsbG9vbi5oIGIvaW5jbHVkZS9iYWxsb29u LmgKaW5kZXggYjBkMGViZi4uOTE1NGY0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9iYWxsb29uLmgK KysrIGIvaW5jbHVkZS9iYWxsb29uLmgKQEAgLTMxLDExICszMSwxMyBAQCBleHRlcm4gdW5zaWdu ZWQgbG9uZyB2aXJ0X2tlcm5lbF9hcmVhX2VuZDsKIAogdm9pZCBnZXRfbWF4X3BhZ2VzKHZvaWQp Owogdm9pZCBhcmNoX3JlbWFwX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pOwordm9pZCBtbV9h bGxvY19iaXRtYXBfcmVtYXAodm9pZCk7CiAKICNlbHNlIC8qIENPTkZJR19CQUxMT09OICovCiAK IHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRfbWF4X3BhZ2VzKHZvaWQpIHsgfQogc3RhdGljIGlubGlu ZSB2b2lkIGFyY2hfcmVtYXBfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3BmbikgeyB9CitzdGF0aWMg aW5saW5lIHZvaWQgbW1fYWxsb2NfYml0bWFwX3JlbWFwKHZvaWQpIHsgfQogCiAjZW5kaWYgLyog Q09ORklHX0JBTExPT04gKi8KICNlbmRpZiAvKiBfQkFMTE9PTl9IXyAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9tbS5oIGIvaW5jbHVkZS9tbS5oCmluZGV4IDZhZGQ2ODMuLmZjMzEyOGIgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbW0uaAorKysgYi9pbmNsdWRlL21tLmgKQEAgLTQyLDggKzQyLDE0IEBA CiAjZGVmaW5lIFNUQUNLX1NJWkVfUEFHRV9PUkRFUiBfX1NUQUNLX1NJWkVfUEFHRV9PUkRFUgog I2RlZmluZSBTVEFDS19TSVpFIF9fU1RBQ0tfU0laRQogCisjZGVmaW5lIHJvdW5kX3BnZG93bihf cCkgICgoX3ApICYgUEFHRV9NQVNLKQorI2RlZmluZSByb3VuZF9wZ3VwKF9wKSAgICAoKChfcCkg KyAoUEFHRV9TSVpFIC0gMSkpICYgUEFHRV9NQVNLKQorCiBleHRlcm4gdW5zaWduZWQgbG9uZyBu cl9mcmVlX3BhZ2VzOwogCitleHRlcm4gdW5zaWduZWQgbG9uZyAqbW1fYWxsb2NfYml0bWFwOwor ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbW1fYWxsb2NfYml0bWFwX3NpemU7CisKIHZvaWQgaW5pdF9t bSh2b2lkKTsKIHVuc2lnbmVkIGxvbmcgYWxsb2NfcGFnZXMoaW50IG9yZGVyKTsKICNkZWZpbmUg YWxsb2NfcGFnZSgpICAgIGFsbG9jX3BhZ2VzKDApCmRpZmYgLS1naXQgYS9tbS5jIGIvbW0uYwpp bmRleCA3MDdhM2UwLi45ZTNhNDc5IDEwMDY0NAotLS0gYS9tbS5jCisrKyBiL21tLmMKQEAgLTQ4 LDExICs0OCwxNCBAQAogICogIE9uZSBiaXQgcGVyIHBhZ2Ugb2YgbWVtb3J5LiBCaXQgc2V0ID0+ IHBhZ2UgaXMgYWxsb2NhdGVkLgogICovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nICphbGxvY19i aXRtYXA7Cit1bnNpZ25lZCBsb25nICptbV9hbGxvY19iaXRtYXA7Cit1bnNpZ25lZCBsb25nIG1t X2FsbG9jX2JpdG1hcF9zaXplOworCiAjZGVmaW5lIFBBR0VTX1BFUl9NQVBXT1JEIChzaXplb2Yo dW5zaWduZWQgbG9uZykgKiA4KQogCiAjZGVmaW5lIGFsbG9jYXRlZF9pbl9tYXAoX3BuKSBcCi0o YWxsb2NfYml0bWFwWyhfcG4pL1BBR0VTX1BFUl9NQVBXT1JEXSAmICgxVUw8PCgoX3BuKSYoUEFH RVNfUEVSX01BUFdPUkQtMSkpKSkKKyAgICAobW1fYWxsb2NfYml0bWFwWyhfcG4pIC8gUEFHRVNf UEVSX01BUFdPUkRdICYgXAorICAgICAoMVVMIDw8ICgoX3BuKSAmIChQQUdFU19QRVJfTUFQV09S RCAtIDEpKSkpCiAKIHVuc2lnbmVkIGxvbmcgbnJfZnJlZV9wYWdlczsKIApAQCAtNjEsOCArNjQs OCBAQCB1bnNpZ25lZCBsb25nIG5yX2ZyZWVfcGFnZXM7CiAgKiAgLSgxPDxuKSAgc2V0cyBhbGwg Yml0cyA+PSBuLiAKICAqICAoMTw8biktMSBzZXRzIGFsbCBiaXRzIDwgIG4uCiAgKiBWYXJpYWJs ZSBuYW1lcyBpbiBtYXBfe2FsbG9jLGZyZWV9OgotICogICpfaWR4ID09IEluZGV4IGludG8gYGFs bG9jX2JpdG1hcCcgYXJyYXkuCi0gKiAgKl9vZmYgPT0gQml0IG9mZnNldCB3aXRoaW4gYW4gZWxl bWVudCBvZiB0aGUgYGFsbG9jX2JpdG1hcCcgYXJyYXkuCisgKiAgKl9pZHggPT0gSW5kZXggaW50 byBgbW1fYWxsb2NfYml0bWFwJyBhcnJheS4KKyAqICAqX29mZiA9PSBCaXQgb2Zmc2V0IHdpdGhp biBhbiBlbGVtZW50IG9mIHRoZSBgbW1fYWxsb2NfYml0bWFwJyBhcnJheS4KICAqLwogCiBzdGF0 aWMgdm9pZCBtYXBfYWxsb2ModW5zaWduZWQgbG9uZyBmaXJzdF9wYWdlLCB1bnNpZ25lZCBsb25n IG5yX3BhZ2VzKQpAQCAtNzYsMTMgKzc5LDEzIEBAIHN0YXRpYyB2b2lkIG1hcF9hbGxvYyh1bnNp Z25lZCBsb25nIGZpcnN0X3BhZ2UsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpCiAKICAgICBpZiAo IGN1cnJfaWR4ID09IGVuZF9pZHggKQogICAgIHsKLSAgICAgICAgYWxsb2NfYml0bWFwW2N1cnJf aWR4XSB8PSAoKDFVTDw8ZW5kX29mZiktMSkgJiAtKDFVTDw8c3RhcnRfb2ZmKTsKKyAgICAgICAg bW1fYWxsb2NfYml0bWFwW2N1cnJfaWR4XSB8PSAoKDFVTDw8ZW5kX29mZiktMSkgJiAtKDFVTDw8 c3RhcnRfb2ZmKTsKICAgICB9CiAgICAgZWxzZSAKICAgICB7Ci0gICAgICAgIGFsbG9jX2JpdG1h cFtjdXJyX2lkeF0gfD0gLSgxVUw8PHN0YXJ0X29mZik7Ci0gICAgICAgIHdoaWxlICggKytjdXJy X2lkeCA8IGVuZF9pZHggKSBhbGxvY19iaXRtYXBbY3Vycl9pZHhdID0gfjBVTDsKLSAgICAgICAg YWxsb2NfYml0bWFwW2N1cnJfaWR4XSB8PSAoMVVMPDxlbmRfb2ZmKS0xOworICAgICAgICBtbV9h bGxvY19iaXRtYXBbY3Vycl9pZHhdIHw9IC0oMVVMPDxzdGFydF9vZmYpOworICAgICAgICB3aGls ZSAoICsrY3Vycl9pZHggPCBlbmRfaWR4ICkgbW1fYWxsb2NfYml0bWFwW2N1cnJfaWR4XSA9IH4w VUw7CisgICAgICAgIG1tX2FsbG9jX2JpdG1hcFtjdXJyX2lkeF0gfD0gKDFVTDw8ZW5kX29mZikt MTsKICAgICB9CiAKICAgICBucl9mcmVlX3BhZ2VzIC09IG5yX3BhZ2VzOwpAQCAtMTAyLDEzICsx MDUsMTMgQEAgc3RhdGljIHZvaWQgbWFwX2ZyZWUodW5zaWduZWQgbG9uZyBmaXJzdF9wYWdlLCB1 bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQogCiAgICAgaWYgKCBjdXJyX2lkeCA9PSBlbmRfaWR4ICkK ICAgICB7Ci0gICAgICAgIGFsbG9jX2JpdG1hcFtjdXJyX2lkeF0gJj0gLSgxVUw8PGVuZF9vZmYp IHwgKCgxVUw8PHN0YXJ0X29mZiktMSk7CisgICAgICAgIG1tX2FsbG9jX2JpdG1hcFtjdXJyX2lk eF0gJj0gLSgxVUw8PGVuZF9vZmYpIHwgKCgxVUw8PHN0YXJ0X29mZiktMSk7CiAgICAgfQogICAg IGVsc2UgCiAgICAgewotICAgICAgICBhbGxvY19iaXRtYXBbY3Vycl9pZHhdICY9ICgxVUw8PHN0 YXJ0X29mZiktMTsKLSAgICAgICAgd2hpbGUgKCArK2N1cnJfaWR4ICE9IGVuZF9pZHggKSBhbGxv Y19iaXRtYXBbY3Vycl9pZHhdID0gMDsKLSAgICAgICAgYWxsb2NfYml0bWFwW2N1cnJfaWR4XSAm PSAtKDFVTDw8ZW5kX29mZik7CisgICAgICAgIG1tX2FsbG9jX2JpdG1hcFtjdXJyX2lkeF0gJj0g KDFVTDw8c3RhcnRfb2ZmKS0xOworICAgICAgICB3aGlsZSAoICsrY3Vycl9pZHggIT0gZW5kX2lk eCApIG1tX2FsbG9jX2JpdG1hcFtjdXJyX2lkeF0gPSAwOworICAgICAgICBtbV9hbGxvY19iaXRt YXBbY3Vycl9pZHhdICY9IC0oMVVMPDxlbmRfb2ZmKTsKICAgICB9CiB9CiAKQEAgLTEzNyw5ICsx NDAsNiBAQCBzdGF0aWMgY2h1bmtfaGVhZF90ICpmcmVlX2hlYWRbRlJFRUxJU1RfU0laRV07CiBz dGF0aWMgY2h1bmtfaGVhZF90ICBmcmVlX3RhaWxbRlJFRUxJU1RfU0laRV07CiAjZGVmaW5lIEZS RUVMSVNUX0VNUFRZKF9sKSAoKF9sKS0+bmV4dCA9PSBOVUxMKQogCi0jZGVmaW5lIHJvdW5kX3Bn ZG93bihfcCkgICgoX3ApJlBBR0VfTUFTSykKLSNkZWZpbmUgcm91bmRfcGd1cChfcCkgICAgKCgo X3ApKyhQQUdFX1NJWkUtMSkpJlBBR0VfTUFTSykKLQogLyoKICAqIEluaXRpYWxpc2UgYWxsb2Nh dG9yLCBwbGFjaW5nIGFkZHJlc3NlcyBbQG1pbixAbWF4XSBpbiBmcmVlIHBvb2wuCiAgKiBAbWlu IGFuZCBAbWF4IGFyZSBQSFlTSUNBTCBhZGRyZXNzZXMuCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3Rh dGljIGNodW5rX2hlYWRfdCAgZnJlZV90YWlsW0ZSRUVMSVNUX1NJWkVdOwogc3RhdGljIHZvaWQg aW5pdF9wYWdlX2FsbG9jYXRvcih1bnNpZ25lZCBsb25nIG1pbiwgdW5zaWduZWQgbG9uZyBtYXgp CiB7CiAgICAgaW50IGk7Ci0gICAgdW5zaWduZWQgbG9uZyByYW5nZSwgYml0bWFwX3NpemU7Cisg ICAgdW5zaWduZWQgbG9uZyByYW5nZTsKICAgICBjaHVua19oZWFkX3QgKmNoOwogICAgIGNodW5r X3RhaWxfdCAqY3Q7CiAgICAgZm9yICggaSA9IDA7IGkgPCBGUkVFTElTVF9TSVpFOyBpKysgKQpA QCAtMTYxLDE0ICsxNjEsMTQgQEAgc3RhdGljIHZvaWQgaW5pdF9wYWdlX2FsbG9jYXRvcih1bnNp Z25lZCBsb25nIG1pbiwgdW5zaWduZWQgbG9uZyBtYXgpCiAgICAgbWF4ID0gcm91bmRfcGdkb3du KG1heCk7CiAKICAgICAvKiBBbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGFsbG9jYXRpb24gYml0bWFw LiAqLwotICAgIGJpdG1hcF9zaXplICA9IChtYXgrMSkgPj4gKFBBR0VfU0hJRlQrMyk7Ci0gICAg Yml0bWFwX3NpemUgID0gcm91bmRfcGd1cChiaXRtYXBfc2l6ZSk7Ci0gICAgYWxsb2NfYml0bWFw ID0gKHVuc2lnbmVkIGxvbmcgKil0b192aXJ0KG1pbik7Ci0gICAgbWluICAgICAgICAgKz0gYml0 bWFwX3NpemU7CisgICAgbW1fYWxsb2NfYml0bWFwX3NpemUgID0gKG1heCArIDEpID4+IChQQUdF X1NISUZUICsgMyk7CisgICAgbW1fYWxsb2NfYml0bWFwX3NpemUgID0gcm91bmRfcGd1cChtbV9h bGxvY19iaXRtYXBfc2l6ZSk7CisgICAgbW1fYWxsb2NfYml0bWFwID0gKHVuc2lnbmVkIGxvbmcg Kil0b192aXJ0KG1pbik7CisgICAgbWluICAgICAgICAgKz0gbW1fYWxsb2NfYml0bWFwX3NpemU7 CiAgICAgcmFuZ2UgICAgICAgID0gbWF4IC0gbWluOwogCiAgICAgLyogQWxsIGFsbG9jYXRlZCBi eSBkZWZhdWx0LiAqLwotICAgIG1lbXNldChhbGxvY19iaXRtYXAsIH4wLCBiaXRtYXBfc2l6ZSk7 CisgICAgbWVtc2V0KG1tX2FsbG9jX2JpdG1hcCwgfjAsIG1tX2FsbG9jX2JpdG1hcF9zaXplKTsK ICAgICAvKiBGcmVlIHVwIHRoZSBtZW1vcnkgd2UndmUgYmVlbiBnaXZlbiB0byBwbGF5IHdpdGgu ICovCiAgICAgbWFwX2ZyZWUoUEhZU19QRk4obWluKSwgcmFuZ2U+PlBBR0VfU0hJRlQpOwogCkBA IC0xOTgsNiArMTk4LDggQEAgc3RhdGljIHZvaWQgaW5pdF9wYWdlX2FsbG9jYXRvcih1bnNpZ25l ZCBsb25nIG1pbiwgdW5zaWduZWQgbG9uZyBtYXgpCiAgICAgICAgIGZyZWVfaGVhZFtpXSAgICA9 IGNoOwogICAgICAgICBjdC0+bGV2ZWwgICAgICAgPSBpOwogICAgIH0KKworICAgIG1tX2FsbG9j X2JpdG1hcF9yZW1hcCgpOwogfQogCiAKLS0gCjIuNi42CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==