From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 16/19] mini-os: map page allocator's bitmap to virtual kernel area for ballooning Date: Thu, 11 Aug 2016 11:18:19 +0200 Message-ID: <1470907102-14656-17-git-send-email-jgross@suse.com> References: <1470907102-14656-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470907102-14656-1-git-send-email-jgross@suse.com> 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 Z25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tClYzOiAtIGFk ZCBhc3NlcnRpb24gYXMgcmVxdWVzdGVkIGJ5IFNhbXVlbCBUaGliYXVsdAogICAgLSByZW5hbWUg ZnVuY3Rpb25zIHRvIGhhdmUgbW1fIHByZWZpeCBhcyByZXF1ZXN0ZWQgYnkgU2FtdWVsIFRoaWJh dWx0Ci0tLQogYmFsbG9vbi5jICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysKIGluY2x1 ZGUvYmFsbG9vbi5oIHwgIDIgKysKIGluY2x1ZGUvbW0uaCAgICAgIHwgIDYgKysrKysrCiBtbS5j ICAgICAgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvYmFsbG9vbi5jIGIvYmFsbG9vbi5jCmluZGV4IDFlYzExM2QuLjc4YjMw YWYgMTAwNjQ0Ci0tLSBhL2JhbGxvb24uYworKysgYi9iYWxsb29uLmMKQEAgLTQ0LDMgKzQ0LDIx IEBAIHZvaWQgZ2V0X21heF9wYWdlcyh2b2lkKQogICAgIG5yX21heF9wYWdlcyA9IHJldDsKICAg ICBwcmludGsoIk1heGltdW0gbWVtb3J5IHNpemU6ICVsZCBwYWdlc1xuIiwgbnJfbWF4X3BhZ2Vz KTsKIH0KKwordm9pZCBtbV9hbGxvY19iaXRtYXBfcmVtYXAodm9pZCkKK3sKKyAgICB1bnNpZ25l ZCBsb25nIGk7CisKKyAgICBpZiAoIG1tX2JpdG1hcF9zaXplID49ICgobnJfbWF4X3BhZ2VzICsg MSkgPj4gKFBBR0VfU0hJRlQgKyAzKSkgKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKCBp ID0gMDsgaSA8IG1tX2JpdG1hcF9zaXplOyBpICs9IFBBR0VfU0laRSApCisgICAgeworICAgICAg ICBtYXBfZnJhbWVfcncodmlydF9rZXJuZWxfYXJlYV9lbmQgKyBpLAorICAgICAgICAgICAgICAg ICAgICAgdmlydF90b19tZm4oKHVuc2lnbmVkIGxvbmcpKG1tX2JpdG1hcCkgKyBpKSk7CisgICAg fQorCisgICAgbW1fYml0bWFwID0gKHVuc2lnbmVkIGxvbmcgKil2aXJ0X2tlcm5lbF9hcmVhX2Vu ZDsKKyAgICB2aXJ0X2tlcm5lbF9hcmVhX2VuZCArPSByb3VuZF9wZ3VwKChucl9tYXhfcGFnZXMg KyAxKSA+PiAoUEFHRV9TSElGVCArIDMpKTsKKyAgICBBU1NFUlQodmlydF9rZXJuZWxfYXJlYV9l bmQgPD0gVklSVF9ERU1BTkRfQVJFQSk7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2JhbGxvb24u aCBiL2luY2x1ZGUvYmFsbG9vbi5oCmluZGV4IGIwZDBlYmYuLjkxNTRmNDQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvYmFsbG9vbi5oCisrKyBiL2luY2x1ZGUvYmFsbG9vbi5oCkBAIC0zMSwxMSArMzEs MTMgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdmlydF9rZXJuZWxfYXJlYV9lbmQ7CiAKIHZvaWQg Z2V0X21heF9wYWdlcyh2b2lkKTsKIHZvaWQgYXJjaF9yZW1hcF9wMm0odW5zaWduZWQgbG9uZyBt YXhfcGZuKTsKK3ZvaWQgbW1fYWxsb2NfYml0bWFwX3JlbWFwKHZvaWQpOwogCiAjZWxzZSAvKiBD T05GSUdfQkFMTE9PTiAqLwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0X21heF9wYWdlcyh2b2lk KSB7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3JlbWFwX3AybSh1bnNpZ25lZCBsb25nIG1h eF9wZm4pIHsgfQorc3RhdGljIGlubGluZSB2b2lkIG1tX2FsbG9jX2JpdG1hcF9yZW1hcCh2b2lk KSB7IH0KIAogI2VuZGlmIC8qIENPTkZJR19CQUxMT09OICovCiAjZW5kaWYgLyogX0JBTExPT05f SF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbW0uaCBiL2luY2x1ZGUvbW0uaAppbmRleCA2YWRk NjgzLi5hYjU2NDQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL21tLmgKKysrIGIvaW5jbHVkZS9tbS5o CkBAIC00Miw4ICs0MiwxNCBAQAogI2RlZmluZSBTVEFDS19TSVpFX1BBR0VfT1JERVIgX19TVEFD S19TSVpFX1BBR0VfT1JERVIKICNkZWZpbmUgU1RBQ0tfU0laRSBfX1NUQUNLX1NJWkUKIAorI2Rl ZmluZSByb3VuZF9wZ2Rvd24oX3ApICAoKF9wKSAmIFBBR0VfTUFTSykKKyNkZWZpbmUgcm91bmRf cGd1cChfcCkgICAgKCgoX3ApICsgKFBBR0VfU0laRSAtIDEpKSAmIFBBR0VfTUFTSykKKwogZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgbnJfZnJlZV9wYWdlczsKIAorZXh0ZXJuIHVuc2lnbmVkIGxvbmcg Km1tX2JpdG1hcDsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG1tX2JpdG1hcF9zaXplOworCiB2b2lk IGluaXRfbW0odm9pZCk7CiB1bnNpZ25lZCBsb25nIGFsbG9jX3BhZ2VzKGludCBvcmRlcik7CiAj ZGVmaW5lIGFsbG9jX3BhZ2UoKSAgICBhbGxvY19wYWdlcygwKQpkaWZmIC0tZ2l0IGEvbW0uYyBi L21tLmMKaW5kZXggNzA3YTNlMC4uZTJmNTVhZiAxMDA2NDQKLS0tIGEvbW0uYworKysgYi9tbS5j CkBAIC00OCwxMSArNDgsMTMgQEAKICAqICBPbmUgYml0IHBlciBwYWdlIG9mIG1lbW9yeS4gQml0 IHNldCA9PiBwYWdlIGlzIGFsbG9jYXRlZC4KICAqLwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyAq YWxsb2NfYml0bWFwOwordW5zaWduZWQgbG9uZyAqbW1fYml0bWFwOwordW5zaWduZWQgbG9uZyBt bV9iaXRtYXBfc2l6ZTsKKwogI2RlZmluZSBQQUdFU19QRVJfTUFQV09SRCAoc2l6ZW9mKHVuc2ln bmVkIGxvbmcpICogOCkKIAogI2RlZmluZSBhbGxvY2F0ZWRfaW5fbWFwKF9wbikgXAotKGFsbG9j X2JpdG1hcFsoX3BuKS9QQUdFU19QRVJfTUFQV09SRF0gJiAoMVVMPDwoKF9wbikmKFBBR0VTX1BF Ul9NQVBXT1JELTEpKSkpCisobW1fYml0bWFwWyhfcG4pL1BBR0VTX1BFUl9NQVBXT1JEXSAmICgx VUw8PCgoX3BuKSYoUEFHRVNfUEVSX01BUFdPUkQtMSkpKSkKIAogdW5zaWduZWQgbG9uZyBucl9m cmVlX3BhZ2VzOwogCkBAIC02MSw4ICs2Myw4IEBAIHVuc2lnbmVkIGxvbmcgbnJfZnJlZV9wYWdl czsKICAqICAtKDE8PG4pICBzZXRzIGFsbCBiaXRzID49IG4uIAogICogICgxPDxuKS0xIHNldHMg YWxsIGJpdHMgPCAgbi4KICAqIFZhcmlhYmxlIG5hbWVzIGluIG1hcF97YWxsb2MsZnJlZX06Ci0g KiAgKl9pZHggPT0gSW5kZXggaW50byBgYWxsb2NfYml0bWFwJyBhcnJheS4KLSAqICAqX29mZiA9 PSBCaXQgb2Zmc2V0IHdpdGhpbiBhbiBlbGVtZW50IG9mIHRoZSBgYWxsb2NfYml0bWFwJyBhcnJh eS4KKyAqICAqX2lkeCA9PSBJbmRleCBpbnRvIGBtbV9iaXRtYXAnIGFycmF5LgorICogICpfb2Zm ID09IEJpdCBvZmZzZXQgd2l0aGluIGFuIGVsZW1lbnQgb2YgdGhlIGBtbV9iaXRtYXAnIGFycmF5 LgogICovCiAKIHN0YXRpYyB2b2lkIG1hcF9hbGxvYyh1bnNpZ25lZCBsb25nIGZpcnN0X3BhZ2Us IHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpCkBAIC03NiwxMyArNzgsMTMgQEAgc3RhdGljIHZvaWQg bWFwX2FsbG9jKHVuc2lnbmVkIGxvbmcgZmlyc3RfcGFnZSwgdW5zaWduZWQgbG9uZyBucl9wYWdl cykKIAogICAgIGlmICggY3Vycl9pZHggPT0gZW5kX2lkeCApCiAgICAgewotICAgICAgICBhbGxv Y19iaXRtYXBbY3Vycl9pZHhdIHw9ICgoMVVMPDxlbmRfb2ZmKS0xKSAmIC0oMVVMPDxzdGFydF9v ZmYpOworICAgICAgICBtbV9iaXRtYXBbY3Vycl9pZHhdIHw9ICgoMVVMPDxlbmRfb2ZmKS0xKSAm IC0oMVVMPDxzdGFydF9vZmYpOwogICAgIH0KICAgICBlbHNlIAogICAgIHsKLSAgICAgICAgYWxs b2NfYml0bWFwW2N1cnJfaWR4XSB8PSAtKDFVTDw8c3RhcnRfb2ZmKTsKLSAgICAgICAgd2hpbGUg KCArK2N1cnJfaWR4IDwgZW5kX2lkeCApIGFsbG9jX2JpdG1hcFtjdXJyX2lkeF0gPSB+MFVMOwot ICAgICAgICBhbGxvY19iaXRtYXBbY3Vycl9pZHhdIHw9ICgxVUw8PGVuZF9vZmYpLTE7CisgICAg ICAgIG1tX2JpdG1hcFtjdXJyX2lkeF0gfD0gLSgxVUw8PHN0YXJ0X29mZik7CisgICAgICAgIHdo aWxlICggKytjdXJyX2lkeCA8IGVuZF9pZHggKSBtbV9iaXRtYXBbY3Vycl9pZHhdID0gfjBVTDsK KyAgICAgICAgbW1fYml0bWFwW2N1cnJfaWR4XSB8PSAoMVVMPDxlbmRfb2ZmKS0xOwogICAgIH0K IAogICAgIG5yX2ZyZWVfcGFnZXMgLT0gbnJfcGFnZXM7CkBAIC0xMDIsMTMgKzEwNCwxMyBAQCBz dGF0aWMgdm9pZCBtYXBfZnJlZSh1bnNpZ25lZCBsb25nIGZpcnN0X3BhZ2UsIHVuc2lnbmVkIGxv bmcgbnJfcGFnZXMpCiAKICAgICBpZiAoIGN1cnJfaWR4ID09IGVuZF9pZHggKQogICAgIHsKLSAg ICAgICAgYWxsb2NfYml0bWFwW2N1cnJfaWR4XSAmPSAtKDFVTDw8ZW5kX29mZikgfCAoKDFVTDw8 c3RhcnRfb2ZmKS0xKTsKKyAgICAgICAgbW1fYml0bWFwW2N1cnJfaWR4XSAmPSAtKDFVTDw8ZW5k X29mZikgfCAoKDFVTDw8c3RhcnRfb2ZmKS0xKTsKICAgICB9CiAgICAgZWxzZSAKICAgICB7Ci0g ICAgICAgIGFsbG9jX2JpdG1hcFtjdXJyX2lkeF0gJj0gKDFVTDw8c3RhcnRfb2ZmKS0xOwotICAg ICAgICB3aGlsZSAoICsrY3Vycl9pZHggIT0gZW5kX2lkeCApIGFsbG9jX2JpdG1hcFtjdXJyX2lk eF0gPSAwOwotICAgICAgICBhbGxvY19iaXRtYXBbY3Vycl9pZHhdICY9IC0oMVVMPDxlbmRfb2Zm KTsKKyAgICAgICAgbW1fYml0bWFwW2N1cnJfaWR4XSAmPSAoMVVMPDxzdGFydF9vZmYpLTE7Cisg ICAgICAgIHdoaWxlICggKytjdXJyX2lkeCAhPSBlbmRfaWR4ICkgbW1fYml0bWFwW2N1cnJfaWR4 XSA9IDA7CisgICAgICAgIG1tX2JpdG1hcFtjdXJyX2lkeF0gJj0gLSgxVUw8PGVuZF9vZmYpOwog ICAgIH0KIH0KIApAQCAtMTM3LDkgKzEzOSw2IEBAIHN0YXRpYyBjaHVua19oZWFkX3QgKmZyZWVf aGVhZFtGUkVFTElTVF9TSVpFXTsKIHN0YXRpYyBjaHVua19oZWFkX3QgIGZyZWVfdGFpbFtGUkVF TElTVF9TSVpFXTsKICNkZWZpbmUgRlJFRUxJU1RfRU1QVFkoX2wpICgoX2wpLT5uZXh0ID09IE5V TEwpCiAKLSNkZWZpbmUgcm91bmRfcGdkb3duKF9wKSAgKChfcCkmUEFHRV9NQVNLKQotI2RlZmlu ZSByb3VuZF9wZ3VwKF9wKSAgICAoKChfcCkrKFBBR0VfU0laRS0xKSkmUEFHRV9NQVNLKQotCiAv KgogICogSW5pdGlhbGlzZSBhbGxvY2F0b3IsIHBsYWNpbmcgYWRkcmVzc2VzIFtAbWluLEBtYXhd IGluIGZyZWUgcG9vbC4KICAqIEBtaW4gYW5kIEBtYXggYXJlIFBIWVNJQ0FMIGFkZHJlc3Nlcy4K QEAgLTE0Nyw3ICsxNDYsNyBAQCBzdGF0aWMgY2h1bmtfaGVhZF90ICBmcmVlX3RhaWxbRlJFRUxJ U1RfU0laRV07CiBzdGF0aWMgdm9pZCBpbml0X3BhZ2VfYWxsb2NhdG9yKHVuc2lnbmVkIGxvbmcg bWluLCB1bnNpZ25lZCBsb25nIG1heCkKIHsKICAgICBpbnQgaTsKLSAgICB1bnNpZ25lZCBsb25n IHJhbmdlLCBiaXRtYXBfc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nIHJhbmdlOwogICAgIGNodW5r X2hlYWRfdCAqY2g7CiAgICAgY2h1bmtfdGFpbF90ICpjdDsKICAgICBmb3IgKCBpID0gMDsgaSA8 IEZSRUVMSVNUX1NJWkU7IGkrKyApCkBAIC0xNjEsMTQgKzE2MCwxNCBAQCBzdGF0aWMgdm9pZCBp bml0X3BhZ2VfYWxsb2NhdG9yKHVuc2lnbmVkIGxvbmcgbWluLCB1bnNpZ25lZCBsb25nIG1heCkK ICAgICBtYXggPSByb3VuZF9wZ2Rvd24obWF4KTsKIAogICAgIC8qIEFsbG9jYXRlIHNwYWNlIGZv ciB0aGUgYWxsb2NhdGlvbiBiaXRtYXAuICovCi0gICAgYml0bWFwX3NpemUgID0gKG1heCsxKSA+ PiAoUEFHRV9TSElGVCszKTsKLSAgICBiaXRtYXBfc2l6ZSAgPSByb3VuZF9wZ3VwKGJpdG1hcF9z aXplKTsKLSAgICBhbGxvY19iaXRtYXAgPSAodW5zaWduZWQgbG9uZyAqKXRvX3ZpcnQobWluKTsK LSAgICBtaW4gICAgICAgICArPSBiaXRtYXBfc2l6ZTsKKyAgICBtbV9iaXRtYXBfc2l6ZSAgPSAo bWF4ICsgMSkgPj4gKFBBR0VfU0hJRlQgKyAzKTsKKyAgICBtbV9iaXRtYXBfc2l6ZSAgPSByb3Vu ZF9wZ3VwKG1tX2JpdG1hcF9zaXplKTsKKyAgICBtbV9iaXRtYXAgPSAodW5zaWduZWQgbG9uZyAq KXRvX3ZpcnQobWluKTsKKyAgICBtaW4gICAgICAgICArPSBtbV9iaXRtYXBfc2l6ZTsKICAgICBy YW5nZSAgICAgICAgPSBtYXggLSBtaW47CiAKICAgICAvKiBBbGwgYWxsb2NhdGVkIGJ5IGRlZmF1 bHQuICovCi0gICAgbWVtc2V0KGFsbG9jX2JpdG1hcCwgfjAsIGJpdG1hcF9zaXplKTsKKyAgICBt ZW1zZXQobW1fYml0bWFwLCB+MCwgbW1fYml0bWFwX3NpemUpOwogICAgIC8qIEZyZWUgdXAgdGhl IG1lbW9yeSB3ZSd2ZSBiZWVuIGdpdmVuIHRvIHBsYXkgd2l0aC4gKi8KICAgICBtYXBfZnJlZShQ SFlTX1BGTihtaW4pLCByYW5nZT4+UEFHRV9TSElGVCk7CiAKQEAgLTE5OCw2ICsxOTcsOCBAQCBz dGF0aWMgdm9pZCBpbml0X3BhZ2VfYWxsb2NhdG9yKHVuc2lnbmVkIGxvbmcgbWluLCB1bnNpZ25l ZCBsb25nIG1heCkKICAgICAgICAgZnJlZV9oZWFkW2ldICAgID0gY2g7CiAgICAgICAgIGN0LT5s ZXZlbCAgICAgICA9IGk7CiAgICAgfQorCisgICAgbW1fYWxsb2NfYml0bWFwX3JlbWFwKCk7CiB9 CiAKIAotLSAKMi42LjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK