From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC v1 62/74] xen/pvshim: memory hotplug Date: Thu, 4 Jan 2018 13:06:13 +0000 Message-ID: <20180104130625.28605-63-wei.liu2@citrix.com> References: <20180104130625.28605-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 1eX5ZO-0003ho-HU for xen-devel@lists.xenproject.org; Thu, 04 Jan 2018 13:28:30 +0000 In-Reply-To: <20180104130625.28605-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 Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNo L3g4Ni9wdi9zaGltLmMgICAgICAgIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgfCAgMTQgKysrKysr CiB4ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0uaCB8ICAxMCArKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDEzNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L3NoaW0u YyBiL3hlbi9hcmNoL3g4Ni9wdi9zaGltLmMKaW5kZXggMjlmMzQzYjg3MS4uZWIzNDQ2NzgzMyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L3NoaW0uYworKysgYi94ZW4vYXJjaC94ODYvcHYv c2hpbS5jCkBAIC05MCw2ICs5MCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbnJfZ3JhbnRfbGlz dDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nICpncmFudF9mcmFtZXM7CiBzdGF0aWMgREVGSU5FX1NQ SU5MT0NLKGdyYW50X2xvY2spOwogCitzdGF0aWMgUEFHRV9MSVNUX0hFQUQoYmFsbG9vbik7Citz dGF0aWMgREVGSU5FX1NQSU5MT0NLKGJhbGxvb25fbG9jayk7CisKICNkZWZpbmUgTDFfUFJPVCAo X1BBR0VfUFJFU0VOVHxfUEFHRV9SV3xfUEFHRV9BQ0NFU1NFRHxfUEFHRV9VU0VSfCBcCiAgICAg ICAgICAgICAgICAgIF9QQUdFX0dVRVNUX0tFUk5FTCkKICNkZWZpbmUgQ09NUEFUX0wxX1BST1Qg KF9QQUdFX1BSRVNFTlR8X1BBR0VfUld8X1BBR0VfQUNDRVNTRUQpCkBAIC04MTQsNiArODE3LDEx MyBAQCBsb25nIHB2X3NoaW1fY3B1X2Rvd24odm9pZCAqZGF0YSkKICAgICByZXR1cm4gMDsKIH0K IAorc3RhdGljIHVuc2lnbmVkIGxvbmcgYmF0Y2hfbWVtb3J5X29wKGludCBjbWQsIHN0cnVjdCBw YWdlX2xpc3RfaGVhZCAqbGlzdCkKK3sKKyAgICBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlv biB4bXIgPSB7CisgICAgICAgIC5kb21pZCA9IERPTUlEX1NFTEYsCisgICAgfTsKKyAgICB1bnNp Z25lZCBsb25nIHBmbnNbNjRdOworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOworICAgIHVuc2ln bmVkIGxvbmcgZG9uZSA9IDA7CisKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZSh4bXIuZXh0ZW50 X3N0YXJ0LCBwZm5zKTsKKyAgICBwYWdlX2xpc3RfZm9yX2VhY2ggKCBwZywgbGlzdCApCisgICAg eworICAgICAgICBwZm5zW3htci5ucl9leHRlbnRzKytdID0gcGFnZV90b19tZm4ocGcpOworICAg ICAgICBpZiAoIHhtci5ucl9leHRlbnRzID09IEFSUkFZX1NJWkUocGZucykgfHwgIXBhZ2VfbGlz dF9uZXh0KHBnLCBsaXN0KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbnIgPSB4ZW5f aHlwZXJjYWxsX21lbW9yeV9vcChjbWQsICZ4bXIpOworCisgICAgICAgICAgICBkb25lICs9IG5y ID4gMCA/IG5yIDogMDsKKyAgICAgICAgICAgIGlmICggbnIgIT0geG1yLm5yX2V4dGVudHMgKQor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgeG1yLm5yX2V4dGVudHMgPSAwOwor ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGRvbmU7Cit9CisKK3ZvaWQgcHZfc2hpbV9v bmxpbmVfbWVtb3J5KHVuc2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IG9yZGVyKQoreworICAg IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsICp0bXA7CisgICAgUEFHRV9MSVNUX0hFQUQobGlzdCk7 CisKKyAgICBzcGluX2xvY2soJmJhbGxvb25fbG9jayk7CisgICAgcGFnZV9saXN0X2Zvcl9lYWNo X3NhZmUgKCBwYWdlLCB0bXAsICZiYWxsb29uICkKKyAgICB7CisgICAgICAgICAgICBpZiAoIHBh Z2UtPnYuZnJlZS5vcmRlciAhPSBvcmRlciApCisgICAgICAgICAgICAgICAgY29udGludWU7CisK KyAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocGFnZSwgJmJhbGxvb24pOworICAgICAgICAgICAg cGFnZV9saXN0X2FkZF90YWlsKHBhZ2UsICZsaXN0KTsKKyAgICAgICAgICAgIGlmICggIS0tbnIg KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzcGluX3VubG9jaygmYmFsbG9v bl9sb2NrKTsKKworICAgIGlmICggbnIgKQorICAgICAgICBncHJpbnRrKFhFTkxPR19XQVJOSU5H LAorICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gYWxsb2NhdGUgJXUgZXh0ZW50cyBvZiBvcmRl ciAldSBmb3Igb25saW5pbmdcbiIsCisgICAgICAgICAgICAgICAgbnIsIG9yZGVyKTsKKworICAg IG5yID0gYmF0Y2hfbWVtb3J5X29wKFhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwLCAmbGlzdCk7Cisg ICAgd2hpbGUgKCBuci0tICkKKyAgICB7CisgICAgICAgIEJVR19PTigocGFnZSA9IHBhZ2VfbGlz dF9yZW1vdmVfaGVhZCgmbGlzdCkpID09IE5VTEwpOworICAgICAgICBmcmVlX2RvbWhlYXBfcGFn ZXMocGFnZSwgb3JkZXIpOworICAgIH0KKworICAgIGlmICggIXBhZ2VfbGlzdF9lbXB0eSgmbGlz dCkgKQorICAgIHsKKyAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAg ICAgICAiZmFpbGVkIHRvIG9ubGluZSBzb21lIG9mIHRoZSBtZW1vcnkgcmVnaW9uc1xuIik7Cisg ICAgICAgIHNwaW5fbG9jaygmYmFsbG9vbl9sb2NrKTsKKyAgICAgICAgd2hpbGUgKCAocGFnZSA9 IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmbGlzdCkpICE9IE5VTEwgKQorICAgICAgICAgICAgcGFn ZV9saXN0X2FkZF90YWlsKHBhZ2UsICZiYWxsb29uKTsKKyAgICAgICAgc3Bpbl91bmxvY2soJmJh bGxvb25fbG9jayk7CisgICAgfQorfQorCit2b2lkIHB2X3NoaW1fb2ZmbGluZV9tZW1vcnkodW5z aWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgc3RydWN0IHBhZ2VfaW5m byAqcGFnZTsKKyAgICBQQUdFX0xJU1RfSEVBRChsaXN0KTsKKworICAgIHdoaWxlICggbnItLSAp CisgICAgeworICAgICAgICBwYWdlID0gYWxsb2NfZG9taGVhcF9wYWdlcyhOVUxMLCBvcmRlciwg MCk7CisgICAgICAgIGlmICggIXBhZ2UgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg cGFnZV9saXN0X2FkZF90YWlsKHBhZ2UsICZsaXN0KTsKKyAgICAgICAgcGFnZS0+di5mcmVlLm9y ZGVyID0gb3JkZXI7CisgICAgfQorCisgICAgaWYgKCBuciArIDEgKQorICAgICAgICBncHJpbnRr KFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gcmVzZXJ2ZSAldSBl eHRlbnRzIG9mIG9yZGVyICV1IGZvciBvZmZsaW5pbmdcbiIsCisgICAgICAgICAgICAgICAgbnIg KyAxLCBvcmRlcik7CisKKworICAgIG5yID0gYmF0Y2hfbWVtb3J5X29wKFhFTk1FTV9kZWNyZWFz ZV9yZXNlcnZhdGlvbiwgJmxpc3QpOworICAgIHNwaW5fbG9jaygmYmFsbG9vbl9sb2NrKTsKKyAg ICB3aGlsZSAoIG5yLS0gKQorICAgIHsKKyAgICAgICAgQlVHX09OKChwYWdlID0gcGFnZV9saXN0 X3JlbW92ZV9oZWFkKCZsaXN0KSkgPT0gTlVMTCk7CisgICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFp bChwYWdlLCAmYmFsbG9vbik7CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZiYWxsb29uX2xvY2sp OworCisgICAgaWYgKCAhcGFnZV9saXN0X2VtcHR5KCZsaXN0KSApCisgICAgeworICAgICAgICBn cHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gb2ZmbGlu ZSBzb21lIG9mIHRoZSBtZW1vcnkgcmVnaW9uc1xuIik7CisgICAgICAgIHdoaWxlICggKHBhZ2Ug PSBwYWdlX2xpc3RfcmVtb3ZlX2hlYWQoJmxpc3QpKSAhPSBOVUxMICkKKyAgICAgICAgICAgIGZy ZWVfZG9taGVhcF9wYWdlcyhwYWdlLCBvcmRlcik7CisgICAgfQorfQorCiBkb21pZF90IGdldF9k b20wX2RvbWlkKHZvaWQpCiB7CiAgICAgdWludDMyX3QgZWF4LCBlYngsIGVjeCwgZWR4OwpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXgg NWExNTA4YTI5Mi4uZjA2ZGY4YzhjZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYwor KysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC0yOSw2ICsyOSwxMCBAQAogI2luY2x1ZGUgPHB1 YmxpYy9tZW1vcnkuaD4KICNpbmNsdWRlIDx4c20veHNtLmg+CiAKKyNpZmRlZiBDT05GSUdfWDg2 CisjaW5jbHVkZSA8YXNtL3B2L3NoaW0uaD4KKyNlbmRpZgorCiBzdHJ1Y3QgbWVtb3BfYXJncyB7 CiAgICAgLyogSU5QVVQgKi8KICAgICBzdHJ1Y3QgZG9tYWluICpkb21haW47ICAgICAvKiBEb21h aW4gdG8gYmUgYWZmZWN0ZWQuICovCkBAIC05OTMsNiArOTk3LDExIEBAIGxvbmcgZG9fbWVtb3J5 X29wKHVuc2lnbmVkIGxvbmcgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykK ICAgICAgICAgICAgIHJldHVybiBzdGFydF9leHRlbnQ7CiAgICAgICAgIH0KIAorI2lmZGVmIENP TkZJR19YODYKKyAgICAgICAgaWYgKCBwdl9zaGltICYmIG9wICE9IFhFTk1FTV9kZWNyZWFzZV9y ZXNlcnZhdGlvbiAmJiAhYXJncy5ucl9kb25lICkKKyAgICAgICAgICAgIHB2X3NoaW1fb25saW5l X21lbW9yeShhcmdzLm5yX2V4dGVudHMsIGFyZ3MuZXh0ZW50X29yZGVyKTsKKyNlbmRpZgorCiAg ICAgICAgIHN3aXRjaCAoIG9wICkKICAgICAgICAgewogICAgICAgICBjYXNlIFhFTk1FTV9pbmNy ZWFzZV9yZXNlcnZhdGlvbjoKQEAgLTEwMTUsNiArMTAyNCwxMSBAQCBsb25nIGRvX21lbW9yeV9v cCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAg ICAgICAgICAgICAgICAgX19IWVBFUlZJU09SX21lbW9yeV9vcCwgImxoIiwKICAgICAgICAgICAg ICAgICBvcCB8IChyYyA8PCBNRU1PUF9FWFRFTlRfU0hJRlQpLCBhcmcpOwogCisjaWZkZWYgQ09O RklHX1g4NgorICAgICAgICBpZiAoIHB2X3NoaW0gJiYgb3AgPT0gWEVOTUVNX2RlY3JlYXNlX3Jl c2VydmF0aW9uICkKKyAgICAgICAgICAgIHB2X3NoaW1fb2ZmbGluZV9tZW1vcnkoYXJncy5ucl9l eHRlbnRzLCBhcmdzLmV4dGVudF9vcmRlcik7CisjZW5kaWYKKwogICAgICAgICBicmVhazsKIAog ICAgIGNhc2UgWEVOTUVNX2V4Y2hhbmdlOgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wdi9zaGltLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0uaAppbmRleCBkMTA3YTYx N2E3Li43MTc0ZjZmYzA3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0u aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0uaApAQCAtNDIsNiArNDIsOCBAQCBs b25nIHB2X3NoaW1fZ3JhbnRfdGFibGVfb3AodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh2b2lkKSB1b3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGNvdW50LCBib29sIGNvbXBhdCk7CiBsb25nIHB2X3NoaW1fY3B1X3VwKHZvaWQgKmRh dGEpOwogbG9uZyBwdl9zaGltX2NwdV9kb3duKHZvaWQgKmRhdGEpOwordm9pZCBwdl9zaGltX29u bGluZV9tZW1vcnkodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgb3JkZXIpOwordm9pZCBw dl9zaGltX29mZmxpbmVfbWVtb3J5KHVuc2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IG9yZGVy KTsKIGRvbWlkX3QgZ2V0X2RvbTBfZG9taWQodm9pZCk7CiB1aW50NjRfdCBwdl9zaGltX21lbSh1 aW50NjRfdCBhdmFpbCk7CiAKQEAgLTg4LDYgKzkwLDE0IEBAIHN0YXRpYyBpbmxpbmUgbG9uZyBw dl9zaGltX2NwdV9kb3duKHZvaWQgKmRhdGEpCiAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CiAg ICAgcmV0dXJuIDA7CiB9CitzdGF0aWMgaW5saW5lIHZvaWQgcHZfc2hpbV9vbmxpbmVfbWVtb3J5 KHVuc2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IG9yZGVyKQoreworICAgIEFTU0VSVF9VTlJF QUNIQUJMRSgpOworfQorc3RhdGljIGlubGluZSB2b2lkIHB2X3NoaW1fb2ZmbGluZV9tZW1vcnko dW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgQVNTRVJUX1VOUkVB Q0hBQkxFKCk7Cit9CiBzdGF0aWMgaW5saW5lIGRvbWlkX3QgZ2V0X2RvbTBfZG9taWQodm9pZCkK IHsKICAgICByZXR1cm4gMDsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=