From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 17/19] mini-os: add support for ballooning up Date: Thu, 11 Aug 2016 13:06:37 +0200 Message-ID: <1470913597-30133-2-git-send-email-jgross@suse.com> References: <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: In-Reply-To: <1470913597-30133-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+ClJldmlld2VkLWJ5OiBTYW11ZWwgVGhp YmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+Ci0tLQpWMzogY2hhbmdlICJpZiIg dG8gIndoaWxlIiBpbiBiYWxsb29uX3VwKCkgYXMgcmVxdWVzdGVkIGJ5IFNhbXVlbCBUaGliYXVs dAotLS0KIGFyY2gvYXJtL2JhbGxvb24uYyB8ICA5ICsrKysrKwogYXJjaC94ODYvYmFsbG9vbi5j IHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBiYWxsb29uLmMgICAgICAgICAgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBpbmNsdWRlL2JhbGxvb24uaCAgfCAgNSArKysKIG1tLmMgICAgICAgICAgICAg ICB8ICA0ICsrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNzYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2JhbGxvb24uYyBiL2FyY2gvYXJtL2JhbGxvb24uYwppbmRleCA1NDllNTFi Li43ZjM1MzI4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9iYWxsb29uLmMKKysrIGIvYXJjaC9hcm0v YmFsbG9vbi5jCkBAIC0yNyw0ICsyNywxMyBAQAogCiB1bnNpZ25lZCBsb25nIHZpcnRfa2VybmVs X2FyZWFfZW5kOyAgIC8qIFRPRE86IGZpbmQgYSB2aXJ0dWFsIGFyZWEgKi8KIAoraW50IGFyY2hf ZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pCit7CisgICAgcmV0dXJuIDA7Cit9CisK K3ZvaWQgYXJjaF9wZm5fYWRkKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikK K3sKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9iYWxsb29uLmMgYi9hcmNoL3g4 Ni9iYWxsb29uLmMKaW5kZXggYTdmMjBlNC4uNDIzODllNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv YmFsbG9vbi5jCisrKyBiL2FyY2gveDg2L2JhbGxvb24uYwpAQCAtMjMsNiArMjMsNyBAQAogCiAj aW5jbHVkZSA8bWluaS1vcy9vcy5oPgogI2luY2x1ZGUgPG1pbmktb3MvYmFsbG9vbi5oPgorI2lu Y2x1ZGUgPG1pbmktb3MvZXJybm8uaD4KICNpbmNsdWRlIDxtaW5pLW9zL2xpYi5oPgogI2luY2x1 ZGUgPG1pbmktb3MvbW0uaD4KIApAQCAtMzAsOSArMzEsMzYgQEAKIAogdW5zaWduZWQgbG9uZyB2 aXJ0X2tlcm5lbF9hcmVhX2VuZCA9IFZJUlRfS0VSTkVMX0FSRUE7CiAKK3N0YXRpYyB2b2lkIHAy bV9pbnZhbGlkYXRlKHVuc2lnbmVkIGxvbmcgKmxpc3QsIHVuc2lnbmVkIGxvbmcgc3RhcnRfaWR4 KQoreworICAgIHVuc2lnbmVkIGxvbmcgaWR4OworCisgICAgZm9yICggaWR4ID0gc3RhcnRfaWR4 OyBpZHggPCBQMk1fRU5UUklFUzsgaWR4KysgKQorICAgICAgICBsaXN0W2lkeF0gPSBJTlZBTElE X1AyTV9FTlRSWTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICpwMm1fbDNsaXN0 KHZvaWQpCit7CisgICAgcmV0dXJuIG1mbl90b192aXJ0KEhZUEVSVklTT1Jfc2hhcmVkX2luZm8t PmFyY2gucGZuX3RvX21mbl9mcmFtZV9saXN0X2xpc3QpOworfQorCitzdGF0aWMgaW5saW5lIHVu c2lnbmVkIGxvbmcgKnAybV90b192aXJ0KHVuc2lnbmVkIGxvbmcgcDJtKQoreworICAgIHJldHVy biAoIHAybSA9PSBJTlZBTElEX1AyTV9FTlRSWSApID8gTlVMTCA6IG1mbl90b192aXJ0KHAybSk7 Cit9CisKIHZvaWQgYXJjaF9yZW1hcF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKQogewogICAg IHVuc2lnbmVkIGxvbmcgcGZuOworICAgIHVuc2lnbmVkIGxvbmcgKmwzX2xpc3QsICpsMl9saXN0 LCAqbDFfbGlzdDsKKworICAgIGwzX2xpc3QgPSBwMm1fbDNsaXN0KCk7CisgICAgbDJfbGlzdCA9 IHAybV90b192aXJ0KGwzX2xpc3RbTDNfUDJNX0lEWChtYXhfcGZuIC0gMSldKTsKKyAgICBsMV9s aXN0ID0gcDJtX3RvX3ZpcnQobDJfbGlzdFtMMl9QMk1fSURYKG1heF9wZm4gLSAxKV0pOworCisg ICAgcDJtX2ludmFsaWRhdGUobDNfbGlzdCwgTDNfUDJNX0lEWChtYXhfcGZuIC0gMSkgKyAxKTsK KyAgICBwMm1faW52YWxpZGF0ZShsMl9saXN0LCBMMl9QMk1fSURYKG1heF9wZm4gLSAxKSArIDEp OworICAgIHAybV9pbnZhbGlkYXRlKGwxX2xpc3QsIEwxX1AyTV9JRFgobWF4X3BmbiAtIDEpICsg MSk7CiAKICAgICBpZiAoIHAybV9wYWdlcyhucl9tYXhfcGFnZXMpIDw9IHAybV9wYWdlcyhtYXhf cGZuKSApCiAgICAgICAgIHJldHVybjsKQEAgLTUwLDQgKzc4LDcwIEBAIHZvaWQgYXJjaF9yZW1h cF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKQogICAgIEFTU0VSVCh2aXJ0X2tlcm5lbF9hcmVh X2VuZCA8PSBWSVJUX0RFTUFORF9BUkVBKTsKIH0KIAoraW50IGFyY2hfZXhwYW5kX3AybSh1bnNp Z25lZCBsb25nIG1heF9wZm4pCit7CisgICAgdW5zaWduZWQgbG9uZyBwZm47CisgICAgdW5zaWdu ZWQgbG9uZyAqbDFfbGlzdCwgKmwyX2xpc3QsICpsM19saXN0OworCisgICAgcDJtX2Noa19wZm4o bWF4X3BmbiAtIDEpOworICAgIGwzX2xpc3QgPSBwMm1fbDNsaXN0KCk7CisKKyAgICBmb3IgKCBw Zm4gPSAoSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5tYXhfcGZuICsgUDJNX01BU0spICYg flAyTV9NQVNLOworICAgICAgICAgIHBmbiA8IG1heF9wZm47IHBmbiArPSBQMk1fRU5UUklFUyAp CisgICAgeworICAgICAgICBsMl9saXN0ID0gcDJtX3RvX3ZpcnQobDNfbGlzdFtMM19QMk1fSURY KHBmbildKTsKKyAgICAgICAgaWYgKCAhbDJfbGlzdCApCisgICAgICAgIHsKKyAgICAgICAgICAg IGwyX2xpc3QgPSAodW5zaWduZWQgbG9uZyopYWxsb2NfcGFnZSgpOworICAgICAgICAgICAgaWYg KCAhbDJfbGlzdCApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgICAgICAg ICBwMm1faW52YWxpZGF0ZShsMl9saXN0LCAwKTsKKyAgICAgICAgICAgIGwzX2xpc3RbTDNfUDJN X0lEWChwZm4pXSA9IHZpcnRfdG9fbWZuKGwyX2xpc3QpOworICAgICAgICB9CisgICAgICAgIGwx X2xpc3QgPSBwMm1fdG9fdmlydChsMl9saXN0W0wyX1AyTV9JRFgocGZuKV0pOworICAgICAgICBp ZiAoICFsMV9saXN0ICkKKyAgICAgICAgeworICAgICAgICAgICAgbDFfbGlzdCA9ICh1bnNpZ25l ZCBsb25nKilhbGxvY19wYWdlKCk7CisgICAgICAgICAgICBpZiAoICFsMV9saXN0ICkKKyAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICAgICAgICAgIHAybV9pbnZhbGlkYXRlKGwx X2xpc3QsIDApOworICAgICAgICAgICAgbDJfbGlzdFtMMl9QMk1fSURYKHBmbildID0gdmlydF90 b19tZm4obDFfbGlzdCk7CisKKyAgICAgICAgICAgIGlmICggbWFwX2ZyYW1lX3J3KCh1bnNpZ25l ZCBsb25nKShwaHlzX3RvX21hY2hpbmVfbWFwcGluZyArIHBmbiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsMl9saXN0W0wyX1AyTV9JRFgocGZuKV0pICkKKyAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEhZUEVSVklTT1Jfc2hh cmVkX2luZm8tPmFyY2gubWF4X3BmbiA9IG1heF9wZm47CisKKyAgICAvKiBNYWtlIHN1cmUgdGhl IG5ldyBsYXN0IHBhZ2UgY2FuIGJlIG1hcHBlZC4gKi8KKyAgICBpZiAoICFuZWVkX3BndCgodW5z aWduZWQgbG9uZylwZm5fdG9fdmlydChtYXhfcGZuIC0gMSkpICkKKyAgICAgICAgcmV0dXJuIC1F Tk9NRU07CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBhcmNoX3Bmbl9hZGQodW5zaWduZWQg bG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKQoreworICAgIG1tdV91cGRhdGVfdCBtbXVfdXBk YXRlc1sxXTsKKyAgICBwZ2VudHJ5X3QgKnBndDsKKyAgICBpbnQgcmM7CisKKyAgICBwaHlzX3Rv X21hY2hpbmVfbWFwcGluZ1twZm5dID0gbWZuOworCisgICAgcGd0ID0gbmVlZF9wZ3QoKHVuc2ln bmVkIGxvbmcpcGZuX3RvX3ZpcnQocGZuKSk7CisgICAgQVNTRVJUKHBndCk7CisgICAgbW11X3Vw ZGF0ZXNbMF0ucHRyID0gdmlydF90b19tYWNoKHBndCkgfCBNTVVfTk9STUFMX1BUX1VQREFURTsK KyAgICBtbXVfdXBkYXRlc1swXS52YWwgPSAocGdlbnRyeV90KShtZm4gPDwgUEFHRV9TSElGVCkg fAorICAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVzsKKyAg ICByYyA9IEhZUEVSVklTT1JfbW11X3VwZGF0ZShtbXVfdXBkYXRlcywgMSwgTlVMTCwgRE9NSURf U0VMRik7CisgICAgaWYgKCByYyA8IDAgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJFUlJPUjog YnVpbGRfcGFnZXRhYmxlKCk6IFBURSBjb3VsZCBub3QgYmUgdXBkYXRlZFxuIik7CisgICAgICAg IHByaW50aygiICAgICAgIG1tdV91cGRhdGUgZmFpbGVkIHdpdGggcmM9JWRcbiIsIHJjKTsKKyAg ICAgICAgZG9fZXhpdCgpOworICAgIH0KK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9iYWxsb29u LmMgYi9iYWxsb29uLmMKaW5kZXggMGEzMzQyYy4uZTFhZjc3OCAxMDA2NDQKLS0tIGEvYmFsbG9v bi5jCisrKyBiL2JhbGxvb24uYwpAQCAtMjMsMTEgKzIzLDEzIEBACiAKICNpbmNsdWRlIDxtaW5p LW9zL29zLmg+CiAjaW5jbHVkZSA8bWluaS1vcy9iYWxsb29uLmg+CisjaW5jbHVkZSA8bWluaS1v cy9lcnJuby5oPgogI2luY2x1ZGUgPG1pbmktb3MvbGliLmg+CiAjaW5jbHVkZSA8eGVuL3hlbi5o PgogI2luY2x1ZGUgPHhlbi9tZW1vcnkuaD4KIAogdW5zaWduZWQgbG9uZyBucl9tYXhfcGFnZXM7 Cit1bnNpZ25lZCBsb25nIG5yX21lbV9wYWdlczsKIAogdm9pZCBnZXRfbWF4X3BhZ2VzKHZvaWQp CiB7CkBAIC02MiwzICs2NCw2NSBAQCB2b2lkIG1tX2FsbG9jX2JpdG1hcF9yZW1hcCh2b2lkKQog ICAgIHZpcnRfa2VybmVsX2FyZWFfZW5kICs9IHJvdW5kX3BndXAoKG5yX21heF9wYWdlcyArIDEp ID4+IChQQUdFX1NISUZUICsgMykpOwogICAgIEFTU0VSVCh2aXJ0X2tlcm5lbF9hcmVhX2VuZCA8 PSBWSVJUX0RFTUFORF9BUkVBKTsKIH0KKworI2RlZmluZSBOX0JBTExPT05fRlJBTUVTIDY0Citz dGF0aWMgdW5zaWduZWQgbG9uZyBiYWxsb29uX2ZyYW1lc1tOX0JBTExPT05fRlJBTUVTXTsKKwor aW50IGJhbGxvb25fdXAodW5zaWduZWQgbG9uZyBuX3BhZ2VzKQoreworICAgIHVuc2lnbmVkIGxv bmcgcGFnZSwgcGZuOworICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZh dGlvbiByZXNlcnZhdGlvbiA9IHsKKyAgICAgICAgLmFkZHJlc3NfYml0cyA9IDAsCisgICAgICAg IC5leHRlbnRfb3JkZXIgPSAwLAorICAgICAgICAuZG9taWQgICAgICAgID0gRE9NSURfU0VMRgor ICAgIH07CisKKyAgICBpZiAoIG5fcGFnZXMgPiBucl9tYXhfcGFnZXMgLSBucl9tZW1fcGFnZXMg KQorICAgICAgICBuX3BhZ2VzID0gbnJfbWF4X3BhZ2VzIC0gbnJfbWVtX3BhZ2VzOworICAgIGlm ICggbl9wYWdlcyA+IE5fQkFMTE9PTl9GUkFNRVMgKQorICAgICAgICBuX3BhZ2VzID0gTl9CQUxM T09OX0ZSQU1FUzsKKworICAgIC8qIFJlc2l6ZSBhbGxvY19iaXRtYXAgaWYgbmVjZXNzYXJ5LiAq LworICAgIHdoaWxlICggbW1fYWxsb2NfYml0bWFwX3NpemUgKiA4IDwgbnJfbWVtX3BhZ2VzICsg bl9wYWdlcyApCisgICAgeworICAgICAgICBwYWdlID0gYWxsb2NfcGFnZSgpOworICAgICAgICBp ZiAoICFwYWdlICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgICAgIG1lbXNl dCgodm9pZCAqKXBhZ2UsIH4wLCBQQUdFX1NJWkUpOworICAgICAgICBpZiAoIG1hcF9mcmFtZV9y dygodW5zaWduZWQgbG9uZyltbV9hbGxvY19iaXRtYXAgKyBtbV9hbGxvY19iaXRtYXBfc2l6ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydF90b19tZm4ocGFnZSkpICkKKyAgICAgICAg eworICAgICAgICAgICAgZnJlZV9wYWdlKCh2b2lkICopcGFnZSk7CisgICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsKKyAgICAgICAgfQorCisgICAgICAgIG1tX2FsbG9jX2JpdG1hcF9zaXplICs9 IFBBR0VfU0laRTsKKyAgICB9CisKKyAgICByYyA9IGFyY2hfZXhwYW5kX3AybShucl9tZW1fcGFn ZXMgKyBuX3BhZ2VzKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAg LyogR2V0IG5ldyBtZW1vcnkgZnJvbSBoeXBlcnZpc29yLiAqLworICAgIGZvciAoIHBmbiA9IDA7 IHBmbiA8IG5fcGFnZXM7IHBmbisrICkKKyAgICB7CisgICAgICAgIGJhbGxvb25fZnJhbWVzW3Bm bl0gPSBucl9tZW1fcGFnZXMgKyBwZm47CisgICAgfQorICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxl KHJlc2VydmF0aW9uLmV4dGVudF9zdGFydCwgYmFsbG9vbl9mcmFtZXMpOworICAgIHJlc2VydmF0 aW9uLm5yX2V4dGVudHMgPSBuX3BhZ2VzOworICAgIHJjID0gSFlQRVJWSVNPUl9tZW1vcnlfb3Ao WEVOTUVNX3BvcHVsYXRlX3BoeXNtYXAsICZyZXNlcnZhdGlvbik7CisgICAgaWYgKCByYyA8PSAw ICkKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAgZm9yICggcGZuID0gMDsgcGZuIDwgcmM7IHBm bisrICkKKyAgICB7CisgICAgICAgIGFyY2hfcGZuX2FkZChucl9tZW1fcGFnZXMgKyBwZm4sIGJh bGxvb25fZnJhbWVzW3Bmbl0pOworICAgICAgICBmcmVlX3BhZ2UocGZuX3RvX3ZpcnQobnJfbWVt X3BhZ2VzICsgcGZuKSk7CisgICAgfQorCisgICAgbnJfbWVtX3BhZ2VzICs9IHJjOworCisgICAg cmV0dXJuIHJjOworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9iYWxsb29uLmggYi9pbmNsdWRlL2Jh bGxvb24uaAppbmRleCA5MTU0ZjQ0Li41ZWMxYmJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2JhbGxv b24uaAorKysgYi9pbmNsdWRlL2JhbGxvb24uaApAQCAtMjgsMTAgKzI4LDE1IEBACiAKIGV4dGVy biB1bnNpZ25lZCBsb25nIG5yX21heF9wYWdlczsKIGV4dGVybiB1bnNpZ25lZCBsb25nIHZpcnRf a2VybmVsX2FyZWFfZW5kOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnJfbWVtX3BhZ2VzOwogCiB2 b2lkIGdldF9tYXhfcGFnZXModm9pZCk7CitpbnQgYmFsbG9vbl91cCh1bnNpZ25lZCBsb25nIG5f cGFnZXMpOworCiB2b2lkIGFyY2hfcmVtYXBfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3Bmbik7CiB2 b2lkIG1tX2FsbG9jX2JpdG1hcF9yZW1hcCh2b2lkKTsKK2ludCBhcmNoX2V4cGFuZF9wMm0odW5z aWduZWQgbG9uZyBtYXhfcGZuKTsKK3ZvaWQgYXJjaF9wZm5fYWRkKHVuc2lnbmVkIGxvbmcgcGZu LCB1bnNpZ25lZCBsb25nIG1mbik7CiAKICNlbHNlIC8qIENPTkZJR19CQUxMT09OICovCiAKZGlm ZiAtLWdpdCBhL21tLmMgYi9tbS5jCmluZGV4IDllM2E0NzkuLjlhMDQ4YzMgMTAwNjQ0Ci0tLSBh L21tLmMKKysrIGIvbW0uYwpAQCAtMzgzLDYgKzM4MywxMCBAQCB2b2lkIGluaXRfbW0odm9pZCkK ICAgICBhcmNoX2luaXRfcDJtKG1heF9wZm4pOwogICAgIAogICAgIGFyY2hfaW5pdF9kZW1hbmRf bWFwcGluZ19hcmVhKCk7CisKKyNpZmRlZiBDT05GSUdfQkFMTE9PTgorICAgIG5yX21lbV9wYWdl cyA9IG1heF9wZm47CisjZW5kaWYKIH0KIAogdm9pZCBmaW5pX21tKHZvaWQpCi0tIAoyLjYuNgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=