From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v2 54/62] xen/pvshim: memory hotplug Date: Fri, 12 Jan 2018 11:29:02 +0000 Message-ID: <20180112112910.16762-55-wei.liu2@citrix.com> References: <20180112112910.16762-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eZxzB-0003LF-JN for xen-devel@lists.xenproject.org; Fri, 12 Jan 2018 11:59:01 +0000 In-Reply-To: <20180112112910.16762-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KClNpZ25lZC1vZmYt Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KQ2hhbmdlcyBz aW5jZSB2MToKIC0gQWRkIGFuIG9yZGVyIHBhcmFtZXRlciB0byBiYXRjaF9tZW1vcnlfb3AuCiAt IEFkZCBhIFRPRE8gaXRlbSByZWdhcmRpbmcgaGlnaCBvcmRlciBtZW1vcnkgY2h1bmtzIHRvCiAg IHB2X3NoaW1fb25saW5lX21lbW9yeS4KIC0gVXNlIHBhZ2VfbGlzdF9zcGxpY2UuCiAtIE1ha2Ug c3VyZSB0aGUgc2hpbSBoYW5kbGVycyBhcmUgbm90IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aGVu CiAgIHRoZSBoeXBlcmNhbGwgaXMgcHJlZW1wdGVkLgotLS0KIHhlbi9hcmNoL3g4Ni9wdi9zaGlt LmMgICAgICAgIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgfCAgMjEgKysrKysrKysKIHhlbi9pbmNs dWRlL2FzbS14ODYvcHYvc2hpbS5oIHwgIDEwICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTQzIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvc2hpbS5jIGIveGVuL2Fy Y2gveDg2L3B2L3NoaW0uYwppbmRleCA2OGVjN2JlZDhlLi40MTIwY2M1NTBlIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvcHYvc2hpbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9zaGltLmMKQEAg LTQ4LDYgKzQ4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBucl9ncmFudF9saXN0Owogc3RhdGlj IHVuc2lnbmVkIGxvbmcgKmdyYW50X2ZyYW1lczsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soZ3Jh bnRfbG9jayk7CiAKK3N0YXRpYyBQQUdFX0xJU1RfSEVBRChiYWxsb29uKTsKK3N0YXRpYyBERUZJ TkVfU1BJTkxPQ0soYmFsbG9vbl9sb2NrKTsKKwogc3RhdGljIGxvbmcgcHZfc2hpbV9ldmVudF9j aGFubmVsX29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKTsKIHN0 YXRpYyBsb25nIHB2X3NoaW1fZ3JhbnRfdGFibGVfb3AodW5zaWduZWQgaW50IGNtZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lk KSB1b3AsCkBAIC04MTQsNiArODE3LDExNSBAQCBsb25nIHB2X3NoaW1fY3B1X2Rvd24odm9pZCAq ZGF0YSkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgYmF0Y2hfbWVt b3J5X29wKHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGludCBvcmRlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGFnZV9saXN0X2hlYWQgKmxp c3QpCit7CisgICAgc3RydWN0IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24geG1yID0geworICAgICAg ICAuZG9taWQgPSBET01JRF9TRUxGLAorICAgICAgICAuZXh0ZW50X29yZGVyID0gb3JkZXIsCisg ICAgfTsKKyAgICB1bnNpZ25lZCBsb25nIHBmbnNbNjRdOworICAgIGNvbnN0IHN0cnVjdCBwYWdl X2luZm8gKnBnOworICAgIHVuc2lnbmVkIGxvbmcgZG9uZSA9IDA7CisKKyAgICBzZXRfeGVuX2d1 ZXN0X2hhbmRsZSh4bXIuZXh0ZW50X3N0YXJ0LCBwZm5zKTsKKyAgICBwYWdlX2xpc3RfZm9yX2Vh Y2ggKCBwZywgbGlzdCApCisgICAgeworICAgICAgICBwZm5zW3htci5ucl9leHRlbnRzKytdID0g cGFnZV90b19tZm4ocGcpOworICAgICAgICBpZiAoIHhtci5ucl9leHRlbnRzID09IEFSUkFZX1NJ WkUocGZucykgfHwgIXBhZ2VfbGlzdF9uZXh0KHBnLCBsaXN0KSApCisgICAgICAgIHsKKyAgICAg ICAgICAgIGxvbmcgbnIgPSB4ZW5faHlwZXJjYWxsX21lbW9yeV9vcChjbWQsICZ4bXIpOworCisg ICAgICAgICAgICBkb25lICs9IG5yID4gMCA/IG5yIDogMDsKKyAgICAgICAgICAgIGlmICggbnIg IT0geG1yLm5yX2V4dGVudHMgKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg eG1yLm5yX2V4dGVudHMgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGRvbmU7 Cit9CisKK3ZvaWQgcHZfc2hpbV9vbmxpbmVfbWVtb3J5KHVuc2lnbmVkIGludCBuciwgdW5zaWdu ZWQgaW50IG9yZGVyKQoreworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsICp0bXA7CisgICAg UEFHRV9MSVNUX0hFQUQobGlzdCk7CisKKyAgICBzcGluX2xvY2soJmJhbGxvb25fbG9jayk7Cisg ICAgcGFnZV9saXN0X2Zvcl9lYWNoX3NhZmUgKCBwYWdlLCB0bXAsICZiYWxsb29uICkKKyAgICB7 CisgICAgICAgIC8qIFRPRE86IGFkZCBzdXBwb3J0IGZvciBzcGxpdHRpbmcgaGlnaCBvcmRlciBt ZW1vcnkgY2h1bmtzLiAqLworICAgICAgICBpZiAoIHBhZ2UtPnYuZnJlZS5vcmRlciAhPSBvcmRl ciApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBwYWdlX2xpc3RfZGVsKHBhZ2Us ICZiYWxsb29uKTsKKyAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBhZ2UsICZsaXN0KTsKKyAg ICAgICAgaWYgKCAhLS1uciApCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3Bpbl91 bmxvY2soJmJhbGxvb25fbG9jayk7CisKKyAgICBpZiAoIG5yICkKKyAgICAgICAgZ3ByaW50ayhY RU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGFsbG9jYXRlICV1IGV4 dGVudHMgb2Ygb3JkZXIgJXUgZm9yIG9ubGluaW5nXG4iLAorICAgICAgICAgICAgICAgIG5yLCBv cmRlcik7CisKKyAgICBuciA9IGJhdGNoX21lbW9yeV9vcChYRU5NRU1fcG9wdWxhdGVfcGh5c21h cCwgb3JkZXIsICZsaXN0KTsKKyAgICB3aGlsZSAoIG5yLS0gKQorICAgIHsKKyAgICAgICAgQlVH X09OKChwYWdlID0gcGFnZV9saXN0X3JlbW92ZV9oZWFkKCZsaXN0KSkgPT0gTlVMTCk7CisgICAg ICAgIGZyZWVfZG9taGVhcF9wYWdlcyhwYWdlLCBvcmRlcik7CisgICAgfQorCisgICAgaWYgKCAh cGFnZV9saXN0X2VtcHR5KCZsaXN0KSApCisgICAgeworICAgICAgICBncHJpbnRrKFhFTkxPR19X QVJOSU5HLAorICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gb25saW5lIHNvbWUgb2YgdGhlIG1l bW9yeSByZWdpb25zXG4iKTsKKyAgICAgICAgc3Bpbl9sb2NrKCZiYWxsb29uX2xvY2spOworICAg ICAgICBwYWdlX2xpc3Rfc3BsaWNlKCZsaXN0LCAmYmFsbG9vbik7CisgICAgICAgIHNwaW5fdW5s b2NrKCZiYWxsb29uX2xvY2spOworICAgIH0KK30KKwordm9pZCBwdl9zaGltX29mZmxpbmVfbWVt b3J5KHVuc2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IG9yZGVyKQoreworICAgIHN0cnVjdCBw YWdlX2luZm8gKnBhZ2U7CisgICAgUEFHRV9MSVNUX0hFQUQobGlzdCk7CisKKyAgICB3aGlsZSAo IG5yLS0gKQorICAgIHsKKyAgICAgICAgcGFnZSA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoTlVMTCwg b3JkZXIsIDApOworICAgICAgICBpZiAoICFwYWdlICkKKyAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmbGlzdCk7CisgICAgICAgIHBhZ2UtPnYu ZnJlZS5vcmRlciA9IG9yZGVyOworICAgIH0KKworICAgIGlmICggbnIgKyAxICkKKyAgICAgICAg Z3ByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIHJlc2Vy dmUgJXUgZXh0ZW50cyBvZiBvcmRlciAldSBmb3Igb2ZmbGluaW5nXG4iLAorICAgICAgICAgICAg ICAgIG5yICsgMSwgb3JkZXIpOworCisKKyAgICBuciA9IGJhdGNoX21lbW9yeV9vcChYRU5NRU1f ZGVjcmVhc2VfcmVzZXJ2YXRpb24sIG9yZGVyLCAmbGlzdCk7CisgICAgc3Bpbl9sb2NrKCZiYWxs b29uX2xvY2spOworICAgIHdoaWxlICggbnItLSApCisgICAgeworICAgICAgICBCVUdfT04oKHBh Z2UgPSBwYWdlX2xpc3RfcmVtb3ZlX2hlYWQoJmxpc3QpKSA9PSBOVUxMKTsKKyAgICAgICAgcGFn ZV9saXN0X2FkZF90YWlsKHBhZ2UsICZiYWxsb29uKTsKKyAgICB9CisgICAgc3Bpbl91bmxvY2so JmJhbGxvb25fbG9jayk7CisKKyAgICBpZiAoICFwYWdlX2xpc3RfZW1wdHkoJmxpc3QpICkKKyAg ICB7CisgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgImZh aWxlZCB0byBvZmZsaW5lIHNvbWUgb2YgdGhlIG1lbW9yeSByZWdpb25zXG4iKTsKKyAgICAgICAg d2hpbGUgKCAocGFnZSA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmbGlzdCkpICE9IE5VTEwgKQor ICAgICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2VzKHBhZ2UsIG9yZGVyKTsKKyAgICB9Cit9CisK IGRvbWlkX3QgZ2V0X2luaXRpYWxfZG9tYWluX2lkKHZvaWQpCiB7CiAgICAgdWludDMyX3QgZWF4 LCBlYngsIGVjeCwgZWR4OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9j b21tb24vbWVtb3J5LmMKaW5kZXggNWExNTA4YTI5Mi4uNzFlMTlhYTYyOSAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC0yOSw2ICsy OSwxMCBAQAogI2luY2x1ZGUgPHB1YmxpYy9tZW1vcnkuaD4KICNpbmNsdWRlIDx4c20veHNtLmg+ CiAKKyNpZmRlZiBDT05GSUdfWDg2CisjaW5jbHVkZSA8YXNtL2d1ZXN0Lmg+CisjZW5kaWYKKwog c3RydWN0IG1lbW9wX2FyZ3MgewogICAgIC8qIElOUFVUICovCiAgICAgc3RydWN0IGRvbWFpbiAq ZG9tYWluOyAgICAgLyogRG9tYWluIHRvIGJlIGFmZmVjdGVkLiAqLwpAQCAtOTkzLDYgKzk5Nywx MiBAQCBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgICAgICByZXR1cm4gc3RhcnRfZXh0ZW50OwogICAg ICAgICB9CiAKKyNpZmRlZiBDT05GSUdfWDg2CisgICAgICAgIGlmICggcHZfc2hpbSAmJiBvcCAh PSBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24gJiYgIWFyZ3MucHJlZW1wdGVkICkKKyAgICAg ICAgICAgIC8qIEF2b2lkIGNhbGxpbmcgcHZfc2hpbV9vbmxpbmVfbWVtb3J5IHdoZW4gcHJlZW1w dGVkLiAqLworICAgICAgICAgICAgcHZfc2hpbV9vbmxpbmVfbWVtb3J5KGFyZ3MubnJfZXh0ZW50 cywgYXJncy5leHRlbnRfb3JkZXIpOworI2VuZGlmCisKICAgICAgICAgc3dpdGNoICggb3AgKQog ICAgICAgICB7CiAgICAgICAgIGNhc2UgWEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uOgpAQCAt MTAxNSw2ICsxMDI1LDE3IEBAIGxvbmcgZG9fbWVtb3J5X29wKHVuc2lnbmVkIGxvbmcgY21kLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgICAgICBfX0hZUEVS VklTT1JfbWVtb3J5X29wLCAibGgiLAogICAgICAgICAgICAgICAgIG9wIHwgKHJjIDw8IE1FTU9Q X0VYVEVOVF9TSElGVCksIGFyZyk7CiAKKyNpZmRlZiBDT05GSUdfWDg2CisgICAgICAgIGlmICgg cHZfc2hpbSAmJiBvcCA9PSBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24gKQorICAgICAgICAg ICAgLyoKKyAgICAgICAgICAgICAqIE9ubHkgY2FsbCBwdl9zaGltX29mZmxpbmVfbWVtb3J5IHdo ZW4gdGhlIGh5cGVyY2FsbCBoYXMKKyAgICAgICAgICAgICAqIGZpbmlzaGVkLiBOb3RlIHRoYXQg bnJfZG9uZSBpcyB1c2VkIHRvIGNvcGUgaW4gY2FzZSB0aGUKKyAgICAgICAgICAgICAqIGh5cGVy Y2FsbCBoYXMgZmFpbGVkIGFuZCBvbmx5IHBhcnQgb2YgdGhlIGV4dGVudHMgd2hlcmUKKyAgICAg ICAgICAgICAqIHByb2Nlc3NlZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHZfc2hp bV9vZmZsaW5lX21lbW9yeShhcmdzLm5yX2V4dGVudHMsIGFyZ3MubnJfZG9uZSk7CisjZW5kaWYK KwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgWEVOTUVNX2V4Y2hhbmdlOgpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9zaGltLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2 L3NoaW0uaAppbmRleCBlYjU5ZGRkMzhhLi5mYjczOTc3MmRmIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L3B2L3NoaW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0u aApAQCAtMzksNiArMzksOCBAQCBpbnQgcHZfc2hpbV9zaHV0ZG93bih1aW50OF90IHJlYXNvbik7 CiB2b2lkIHB2X3NoaW1faW5qZWN0X2V2dGNobih1bnNpZ25lZCBpbnQgcG9ydCk7CiBsb25nIHB2 X3NoaW1fY3B1X3VwKHZvaWQgKmRhdGEpOwogbG9uZyBwdl9zaGltX2NwdV9kb3duKHZvaWQgKmRh dGEpOwordm9pZCBwdl9zaGltX29ubGluZV9tZW1vcnkodW5zaWduZWQgaW50IG5yLCB1bnNpZ25l ZCBpbnQgb3JkZXIpOwordm9pZCBwdl9zaGltX29mZmxpbmVfbWVtb3J5KHVuc2lnbmVkIGludCBu ciwgdW5zaWduZWQgaW50IG9yZGVyKTsKIGRvbWlkX3QgZ2V0X2luaXRpYWxfZG9tYWluX2lkKHZv aWQpOwogdWludDY0X3QgcHZfc2hpbV9tZW0odWludDY0X3QgYXZhaWwpOwogCkBAIC03Miw2ICs3 NCwxNCBAQCBzdGF0aWMgaW5saW5lIGxvbmcgcHZfc2hpbV9jcHVfZG93bih2b2lkICpkYXRhKQog ICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogICAgIHJldHVybiAwOwogfQorc3RhdGljIGlubGlu ZSB2b2lkIHB2X3NoaW1fb25saW5lX21lbW9yeSh1bnNpZ25lZCBpbnQgbnIsIHVuc2lnbmVkIGlu dCBvcmRlcikKK3sKKyAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKK30KK3N0YXRpYyBpbmxpbmUg dm9pZCBwdl9zaGltX29mZmxpbmVfbWVtb3J5KHVuc2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50 IG9yZGVyKQoreworICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworfQogc3RhdGljIGlubGluZSBk b21pZF90IGdldF9pbml0aWFsX2RvbWFpbl9pZCh2b2lkKQogewogICAgIHJldHVybiAwOwotLSAK Mi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==