From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 17/18] mini-os: add support for ballooning up Date: Fri, 5 Aug 2016 19:36:01 +0200 Message-ID: <1470418562-11234-18-git-send-email-jgross@suse.com> References: <1470418562-11234-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: <1470418562-11234-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 QWRkIHN1cHBvcnQgZm9yIGJhbGxvb25pbmcgdGhlIGRvbWFpbiB1cCBieSBhIHNwZWNpZmllZCBh bW91bnQgb2YKcGFnZXMuIEZvbGxvd2luZyBzdGVwcyBhcmUgcGVyZm9ybWVkOgoKLSBleHRlbmRp bmcgdGhlIHAybSBtYXAKLSBleHRlbmRpbmcgdGhlIHBhZ2UgYWxsb2NhdG9yJ3MgYml0bWFwCi0g Z2V0dGluZyBuZXcgbWVtb3J5IHBhZ2VzIGZyb20gdGhlIGh5cGVydmlzb3IKLSBhZGRpbmcgdGhl IG1lbW9yeSBhdCB0aGUgY3VycmVudCBlbmQgb2YgZ3Vlc3QgbWVtb3J5CgpTaWduZWQtb2ZmLWJ5 OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogYXJjaC9hcm0vYmFsbG9vbi5j IHwgIDkgKysrKysrCiBhcmNoL3g4Ni9iYWxsb29uLmMgfCA5NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGJhbGxvb24uYyAgICAgICAgICB8 IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvYmFsbG9v bi5oICB8ICA1ICsrKwogbW0uYyAgICAgICAgICAgICAgIHwgIDQgKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDE3NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYmFsbG9vbi5jIGIv YXJjaC9hcm0vYmFsbG9vbi5jCmluZGV4IGE3NmRiM2IuLmZiYjgwMDcgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL2JhbGxvb24uYworKysgYi9hcmNoL2FybS9iYWxsb29uLmMKQEAgLTI3LDQgKzI3LDEz IEBACiAKIHVuc2lnbmVkIGxvbmcgdmlydF9rZXJuZWxfYXJlYV9lbmQ7ICAgLyogVE9ETzogZmlu ZCBhIHZpcnR1YWwgYXJlYSAqLwogCitpbnQgYXJjaF9leHBhbmRfcDJtKHVuc2lnbmVkIGxvbmcg bWF4X3BmbikKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBhcmNoX3Bmbl9hZGQodW5zaWdu ZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKQoreworfQorCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2JhbGxvb24uYyBiL2FyY2gveDg2L2JhbGxvb24uYwppbmRleCBkYjM3ZThm Li4zZDc2OTJmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9iYWxsb29uLmMKKysrIGIvYXJjaC94ODYv YmFsbG9vbi5jCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlIDxtaW5pLW9zL29zLmg+CiAj aW5jbHVkZSA8bWluaS1vcy9iYWxsb29uLmg+CisjaW5jbHVkZSA8bWluaS1vcy9lcnJuby5oPgog I2luY2x1ZGUgPG1pbmktb3MvbGliLmg+CiAjaW5jbHVkZSA8bWluaS1vcy9tbS5oPgogCkBAIC0z MCw5ICszMSwzNiBAQAogCiB1bnNpZ25lZCBsb25nIHZpcnRfa2VybmVsX2FyZWFfZW5kID0gVklS VF9LRVJORUxfQVJFQTsKIAorc3RhdGljIHZvaWQgcDJtX2ludmFsaWRhdGUodW5zaWduZWQgbG9u ZyAqbGlzdCwgdW5zaWduZWQgbG9uZyBzdGFydF9pZHgpCit7CisgICAgdW5zaWduZWQgbG9uZyBp ZHg7CisKKyAgICBmb3IgKCBpZHggPSBzdGFydF9pZHg7IGlkeCA8IFAyTV9FTlRSSUVTOyBpZHgr KyApCisgICAgICAgIGxpc3RbaWR4XSA9IElOVkFMSURfUDJNX0VOVFJZOworfQorCitzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgKnAybV9sM2xpc3Qodm9pZCkKK3sKKyAgICByZXR1cm4gbWZu X3RvX3ZpcnQoSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5wZm5fdG9fbWZuX2ZyYW1lX2xp c3RfbGlzdCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqcDJtX3RvX3ZpcnQo dW5zaWduZWQgbG9uZyBwMm0pCit7CisgICAgcmV0dXJuICggcDJtID09IElOVkFMSURfUDJNX0VO VFJZICkgPyBOVUxMIDogbWZuX3RvX3ZpcnQocDJtKTsKK30KKwogdm9pZCBhcmNoX3JlbWFwX3Ay bSh1bnNpZ25lZCBsb25nIG1heF9wZm4pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBwZm47CisgICAg dW5zaWduZWQgbG9uZyAqbDNfbGlzdCwgKmwyX2xpc3QsICpsMV9saXN0OworCisgICAgbDNfbGlz dCA9IHAybV9sM2xpc3QoKTsKKyAgICBsMl9saXN0ID0gcDJtX3RvX3ZpcnQobDNfbGlzdFtMM19Q Mk1fSURYKG1heF9wZm4gLSAxKV0pOworICAgIGwxX2xpc3QgPSBwMm1fdG9fdmlydChsMl9saXN0 W0wyX1AyTV9JRFgobWF4X3BmbiAtIDEpXSk7CisKKyAgICBwMm1faW52YWxpZGF0ZShsM19saXN0 LCBMM19QMk1fSURYKG1heF9wZm4gLSAxKSArIDEpOworICAgIHAybV9pbnZhbGlkYXRlKGwyX2xp c3QsIEwyX1AyTV9JRFgobWF4X3BmbiAtIDEpICsgMSk7CisgICAgcDJtX2ludmFsaWRhdGUobDFf bGlzdCwgTDFfUDJNX0lEWChtYXhfcGZuIC0gMSkgKyAxKTsKIAogICAgIGlmICggcDJtX3BhZ2Vz KG5yX21heF9wYWdlcykgPD0gcDJtX3BhZ2VzKG1heF9wZm4pICkKICAgICAgICAgcmV0dXJuOwpA QCAtNDksNCArNzcsNzAgQEAgdm9pZCBhcmNoX3JlbWFwX3AybSh1bnNpZ25lZCBsb25nIG1heF9w Zm4pCiAgICAgdmlydF9rZXJuZWxfYXJlYV9lbmQgKz0gUEFHRV9TSVpFICogcDJtX3BhZ2VzKG5y X21heF9wYWdlcyk7CiB9CiAKK2ludCBhcmNoX2V4cGFuZF9wMm0odW5zaWduZWQgbG9uZyBtYXhf cGZuKQoreworICAgIHVuc2lnbmVkIGxvbmcgcGZuOworICAgIHVuc2lnbmVkIGxvbmcgKmwxX2xp c3QsICpsMl9saXN0LCAqbDNfbGlzdDsKKworICAgIHAybV9jaGtfcGZuKG1heF9wZm4gLSAxKTsK KyAgICBsM19saXN0ID0gcDJtX2wzbGlzdCgpOworCisgICAgZm9yICggcGZuID0gKEhZUEVSVklT T1Jfc2hhcmVkX2luZm8tPmFyY2gubWF4X3BmbiArIFAyTV9NQVNLKSAmIH5QMk1fTUFTSzsKKyAg ICAgICAgICBwZm4gPCBtYXhfcGZuOyBwZm4gKz0gUDJNX0VOVFJJRVMgKQorICAgIHsKKyAgICAg ICAgbDJfbGlzdCA9IHAybV90b192aXJ0KGwzX2xpc3RbTDNfUDJNX0lEWChwZm4pXSk7CisgICAg ICAgIGlmICggIWwyX2xpc3QgKQorICAgICAgICB7CisgICAgICAgICAgICBsMl9saXN0ID0gKHVu c2lnbmVkIGxvbmcqKWFsbG9jX3BhZ2UoKTsKKyAgICAgICAgICAgIGlmICggIWwyX2xpc3QgKQor ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgICAgICAgICAgcDJtX2ludmFsaWRh dGUobDJfbGlzdCwgMCk7CisgICAgICAgICAgICBsM19saXN0W0wzX1AyTV9JRFgocGZuKV0gPSB2 aXJ0X3RvX21mbihsMl9saXN0KTsKKyAgICAgICAgfQorICAgICAgICBsMV9saXN0ID0gcDJtX3Rv X3ZpcnQobDJfbGlzdFtMMl9QMk1fSURYKHBmbildKTsKKyAgICAgICAgaWYgKCAhbDFfbGlzdCAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGwxX2xpc3QgPSAodW5zaWduZWQgbG9uZyopYWxsb2Nf cGFnZSgpOworICAgICAgICAgICAgaWYgKCAhbDFfbGlzdCApCisgICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07CisgICAgICAgICAgICBwMm1faW52YWxpZGF0ZShsMV9saXN0LCAwKTsKKyAg ICAgICAgICAgIGwyX2xpc3RbTDJfUDJNX0lEWChwZm4pXSA9IHZpcnRfdG9fbWZuKGwxX2xpc3Qp OworCisgICAgICAgICAgICBpZiAoIG1hcF9mcmFtZV9ydygodW5zaWduZWQgbG9uZykocGh5c190 b19tYWNoaW5lX21hcHBpbmcgKyBwZm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bDJfbGlzdFtMMl9QMk1fSURYKHBmbildKSApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNo Lm1heF9wZm4gPSBtYXhfcGZuOworCisgICAgLyogTWFrZSBzdXJlIHRoZSBuZXcgbGFzdCBwYWdl IGNhbiBiZSBtYXBwZWQuICovCisgICAgaWYgKCAhbmVlZF9wZ3QoKHVuc2lnbmVkIGxvbmcpcGZu X3RvX3ZpcnQobWF4X3BmbiAtIDEpKSApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAg cmV0dXJuIDA7Cit9CisKK3ZvaWQgYXJjaF9wZm5fYWRkKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNp Z25lZCBsb25nIG1mbikKK3sKKyAgICBtbXVfdXBkYXRlX3QgbW11X3VwZGF0ZXNbMV07CisgICAg cGdlbnRyeV90ICpwZ3Q7CisgICAgaW50IHJjOworCisgICAgcGh5c190b19tYWNoaW5lX21hcHBp bmdbcGZuXSA9IG1mbjsKKworICAgIHBndCA9IG5lZWRfcGd0KCh1bnNpZ25lZCBsb25nKXBmbl90 b192aXJ0KHBmbikpOworICAgIEFTU0VSVChwZ3QpOworICAgIG1tdV91cGRhdGVzWzBdLnB0ciA9 IHZpcnRfdG9fbWFjaChwZ3QpIHwgTU1VX05PUk1BTF9QVF9VUERBVEU7CisgICAgbW11X3VwZGF0 ZXNbMF0udmFsID0gKHBnZW50cnlfdCkobWZuIDw8IFBBR0VfU0hJRlQpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICBfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlc7CisgICAgcmMgPSBIWVBFUlZJ U09SX21tdV91cGRhdGUobW11X3VwZGF0ZXMsIDEsIE5VTEwsIERPTUlEX1NFTEYpOworICAgIGlm ICggcmMgPCAwICkKKyAgICB7CisgICAgICAgIHByaW50aygiRVJST1I6IGJ1aWxkX3BhZ2V0YWJs ZSgpOiBQVEUgY291bGQgbm90IGJlIHVwZGF0ZWRcbiIpOworICAgICAgICBwcmludGsoIiAgICAg ICBtbXVfdXBkYXRlIGZhaWxlZCB3aXRoIHJjPSVkXG4iLCByYyk7CisgICAgICAgIGRvX2V4aXQo KTsKKyAgICB9Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYmFsbG9vbi5jIGIvYmFsbG9vbi5j CmluZGV4IDc1Yjg3YzguLjMwZTU3MWMgMTAwNjQ0Ci0tLSBhL2JhbGxvb24uYworKysgYi9iYWxs b29uLmMKQEAgLTIzLDExICsyMywxMyBAQAogCiAjaW5jbHVkZSA8bWluaS1vcy9vcy5oPgogI2lu Y2x1ZGUgPG1pbmktb3MvYmFsbG9vbi5oPgorI2luY2x1ZGUgPG1pbmktb3MvZXJybm8uaD4KICNp bmNsdWRlIDxtaW5pLW9zL2xpYi5oPgogI2luY2x1ZGUgPHhlbi94ZW4uaD4KICNpbmNsdWRlIDx4 ZW4vbWVtb3J5Lmg+CiAKIHVuc2lnbmVkIGxvbmcgbnJfbWF4X3BhZ2VzOwordW5zaWduZWQgbG9u ZyBucl9tZW1fcGFnZXM7CiAKIHZvaWQgZ2V0X21heF9wYWdlcyh2b2lkKQogewpAQCAtNjEsMyAr NjMsNjUgQEAgdm9pZCBhbGxvY19iaXRtYXBfcmVtYXAodm9pZCkKICAgICBhbGxvY19iaXRtYXAg PSAodW5zaWduZWQgbG9uZyAqKXZpcnRfa2VybmVsX2FyZWFfZW5kOwogICAgIHZpcnRfa2VybmVs X2FyZWFfZW5kICs9IHJvdW5kX3BndXAoKG5yX21heF9wYWdlcyArIDEpID4+IChQQUdFX1NISUZU ICsgMykpOwogfQorCisjZGVmaW5lIE5fQkFMTE9PTl9GUkFNRVMgNjQKK3N0YXRpYyB1bnNpZ25l ZCBsb25nIGJhbGxvb25fZnJhbWVzW05fQkFMTE9PTl9GUkFNRVNdOworCitpbnQgYmFsbG9vbl91 cCh1bnNpZ25lZCBsb25nIG5fcGFnZXMpCit7CisgICAgdW5zaWduZWQgbG9uZyBwYWdlLCBwZm47 CisgICAgaW50IHJjOworICAgIHN0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uIHJlc2VydmF0 aW9uID0geworICAgICAgICAuYWRkcmVzc19iaXRzID0gMCwKKyAgICAgICAgLmV4dGVudF9vcmRl ciA9IDAsCisgICAgICAgIC5kb21pZCAgICAgICAgPSBET01JRF9TRUxGCisgICAgfTsKKworICAg IGlmICggbl9wYWdlcyA+IG5yX21heF9wYWdlcyAtIG5yX21lbV9wYWdlcyApCisgICAgICAgIG5f cGFnZXMgPSBucl9tYXhfcGFnZXMgLSBucl9tZW1fcGFnZXM7CisgICAgaWYgKCBuX3BhZ2VzID4g Tl9CQUxMT09OX0ZSQU1FUyApCisgICAgICAgIG5fcGFnZXMgPSBOX0JBTExPT05fRlJBTUVTOwor CisgICAgLyogUmVzaXplIGFsbG9jX2JpdG1hcCBpZiBuZWNlc3NhcnkuICovCisgICAgaWYgKCBh bGxvY19iaXRtYXBfc2l6ZSAqIDggPCBucl9tZW1fcGFnZXMgKyBuX3BhZ2VzICkKKyAgICB7Cisg ICAgICAgIHBhZ2UgPSBhbGxvY19wYWdlKCk7CisgICAgICAgIGlmICggIXBhZ2UgKQorICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAgICAgbWVtc2V0KCh2b2lkICopcGFnZSwgfjAs IFBBR0VfU0laRSk7CisgICAgICAgIGlmICggbWFwX2ZyYW1lX3J3KCh1bnNpZ25lZCBsb25nKWFs bG9jX2JpdG1hcCArIGFsbG9jX2JpdG1hcF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg ICB2aXJ0X3RvX21mbihwYWdlKSkgKQorICAgICAgICB7CisgICAgICAgICAgICBmcmVlX3BhZ2Uo KHZvaWQgKilwYWdlKTsKKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgICAgICB9CisK KyAgICAgICAgYWxsb2NfYml0bWFwX3NpemUgKz0gUEFHRV9TSVpFOworICAgIH0KKworICAgIHJj ID0gYXJjaF9leHBhbmRfcDJtKG5yX21lbV9wYWdlcyArIG5fcGFnZXMpOworICAgIGlmICggcmMg KQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKiBHZXQgbmV3IG1lbW9yeSBmcm9tIGh5cGVy dmlzb3IuICovCisgICAgZm9yICggcGZuID0gMDsgcGZuIDwgbl9wYWdlczsgcGZuKysgKQorICAg IHsKKyAgICAgICAgYmFsbG9vbl9mcmFtZXNbcGZuXSA9IG5yX21lbV9wYWdlcyArIHBmbjsKKyAg ICB9CisgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCBi YWxsb29uX2ZyYW1lcyk7CisgICAgcmVzZXJ2YXRpb24ubnJfZXh0ZW50cyA9IG5fcGFnZXM7Cisg ICAgcmMgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fcG9wdWxhdGVfcGh5c21hcCwgJnJl c2VydmF0aW9uKTsKKyAgICBpZiAoIHJjIDw9IDAgKQorICAgICAgICByZXR1cm4gcmM7CisKKyAg ICBmb3IgKCBwZm4gPSAwOyBwZm4gPCByYzsgcGZuKysgKQorICAgIHsKKyAgICAgICAgYXJjaF9w Zm5fYWRkKG5yX21lbV9wYWdlcyArIHBmbiwgYmFsbG9vbl9mcmFtZXNbcGZuXSk7CisgICAgICAg IGZyZWVfcGFnZShwZm5fdG9fdmlydChucl9tZW1fcGFnZXMgKyBwZm4pKTsKKyAgICB9CisKKyAg ICBucl9tZW1fcGFnZXMgKz0gcmM7CisKKyAgICByZXR1cm4gcmM7Cit9CmRpZmYgLS1naXQgYS9p bmNsdWRlL2JhbGxvb24uaCBiL2luY2x1ZGUvYmFsbG9vbi5oCmluZGV4IDBlMjM0MGIuLjhiZjc3 ZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYmFsbG9vbi5oCisrKyBiL2luY2x1ZGUvYmFsbG9vbi5o CkBAIC0yOCwxMCArMjgsMTUgQEAKIAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnJfbWF4X3BhZ2Vz OwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdmlydF9rZXJuZWxfYXJlYV9lbmQ7CitleHRlcm4gdW5z aWduZWQgbG9uZyBucl9tZW1fcGFnZXM7CiAKIHZvaWQgZ2V0X21heF9wYWdlcyh2b2lkKTsKK2lu dCBiYWxsb29uX3VwKHVuc2lnbmVkIGxvbmcgbl9wYWdlcyk7CisKIHZvaWQgYXJjaF9yZW1hcF9w Mm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKTsKIHZvaWQgYWxsb2NfYml0bWFwX3JlbWFwKHZvaWQp OworaW50IGFyY2hfZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pOwordm9pZCBhcmNo X3Bmbl9hZGQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKTsKIAogI2Vsc2Ug LyogQ09ORklHX0JBTExPT04gKi8KIApkaWZmIC0tZ2l0IGEvbW0uYyBiL21tLmMKaW5kZXggMTNi YjNlNS4uMDkyYzVmOSAxMDA2NDQKLS0tIGEvbW0uYworKysgYi9tbS5jCkBAIC0zODEsNiArMzgx LDEwIEBAIHZvaWQgaW5pdF9tbSh2b2lkKQogICAgIGFyY2hfaW5pdF9wMm0obWF4X3Bmbik7CiAg ICAgCiAgICAgYXJjaF9pbml0X2RlbWFuZF9tYXBwaW5nX2FyZWEoKTsKKworI2lmZGVmIENPTkZJ R19CQUxMT09OCisgICAgbnJfbWVtX3BhZ2VzID0gbWF4X3BmbjsKKyNlbmRpZgogfQogCiB2b2lk IGZpbmlfbW0odm9pZCkKLS0gCjIuNi42CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==