From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 10/44] x86/pt-shadow: Initial infrastructure for L4 PV pagetable shadowing Date: Thu, 4 Jan 2018 20:21:35 +0000 Message-ID: <1515097329-31902-11-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515097329-31902-1-git-send-email-andrew.cooper3@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: Andrew Cooper List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LS0tCnYzOgogKiBTd2l0Y2ggdG8gdXNpbmcgYSBzaW5nbGUgc3RydWN0dXJlIHBlciBjcHUsIHJh dGhlciB0aGFuIG11bHRpcGxlIGZpZWxkcy4KLS0tCiB4ZW4vYXJjaC94ODYvcHYvTWFrZWZpbGUg ICAgICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L3B2L3B0LXNoYWRvdy5jICAgICAgICB8IDg2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvc21w Ym9vdC5jICAgICAgICAgICAgIHwgIDcgKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9wdC1z aGFkb3cuaCB8IDUwICsrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQ0 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvcHYvcHQtc2hh ZG93LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9hc20teDg2L3B2L3B0LXNoYWRv dy5oCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L01ha2VmaWxlIGIveGVuL2FyY2gveDg2 L3B2L01ha2VmaWxlCmluZGV4IGJhYzI3OTIuLmFjZmYyYmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wdi9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC94ODYvcHYvTWFrZWZpbGUKQEAgLTEwLDYg KzEwLDcgQEAgb2JqLXkgKz0gaHlwZXJjYWxsLm8KIG9iai15ICs9IGlyZXQubwogb2JqLXkgKz0g bWlzYy1oeXBlcmNhbGxzLm8KIG9iai15ICs9IG1tLm8KK29iai15ICs9IHB0LXNoYWRvdy5vCiBv YmoteSArPSByby1wYWdlLWZhdWx0Lm8KIG9iai15ICs9IHRyYXBzLm8KIApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3B2L3B0LXNoYWRvdy5jIGIveGVuL2FyY2gveDg2L3B2L3B0LXNoYWRvdy5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYjhlZmIKLS0tIC9kZXYvbnVs bAorKysgYi94ZW4vYXJjaC94ODYvcHYvcHQtc2hhZG93LmMKQEAgLTAsMCArMSw4NiBAQAorLyoK KyAqIGFyY2gveDg2L3B2L3B0LXNoYWRvdy5jCisgKgorICogUFYgUGFnZXRhYmxlIHNoYWRvd2lu ZyBsb2dpYyB0byBhbGxvdyBYZW4gdG8gcnVuIHdpdGggcGVyLXBjcHUgcGFnZXRhYmxlcy4KKyAq CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3 IENpdHJpeCBTeXN0ZW1zIEx0ZC4KKyAqLworI2luY2x1ZGUgPHhlbi9kb21haW5fcGFnZS5oPgor I2luY2x1ZGUgPHhlbi9tbS5oPgorI2luY2x1ZGUgPHhlbi9udW1hLmg+CisKKyNpbmNsdWRlIDxh c20vcHYvcHQtc2hhZG93Lmg+CisKK3N0cnVjdCBwdF9zaGFkb3cgeworICAgIC8qCisgICAgICog QSBmcmFtZSB1c2VkIHRvIHNoYWRvdyBhIHZjcHVzIGludGVuZGVkIHBhZ2V0YWJsZS4gIFdoZW4g c2hhZG93aW5nLAorICAgICAqIHRoaXMgZnJhbWUgaXMgdGhlIG9uZSBhY3R1YWxseSByZWZlcmVu Y2VkIGJ5ICVjcjMuCisgICAgICovCisgICAgcGFkZHJfdCBzaGFkb3dfbDQ7CisgICAgbDRfcGdl bnRyeV90ICpzaGFkb3dfbDRfdmE7Cit9OworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0 IHB0X3NoYWRvdywgcHRzaCk7CisKK2ludCBwdF9zaGFkb3dfYWxsb2ModW5zaWduZWQgaW50IGNw dSkKK3sKKyAgICBzdHJ1Y3QgcHRfc2hhZG93ICpwdHNoID0gJnBlcl9jcHUocHRzaCwgY3B1KTsK KyAgICB1bnNpZ25lZCBpbnQgbWVtZmxhZ3MgPSAwOworICAgIG5vZGVpZF90IG5vZGUgPSBjcHVf dG9fbm9kZShjcHUpOworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOworCisgICAgaWYgKCBub2Rl ICE9IE5VTUFfTk9fTk9ERSApCisgICAgICAgIG1lbWZsYWdzID0gTUVNRl9ub2RlKG5vZGUpOwor CisgICAgcGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoTlVMTCwgbWVtZmxhZ3MpOworICAgIGlmICgg IXBnICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBwdHNoLT5zaGFkb3dfbDQgPSBw YWdlX3RvX21hZGRyKHBnKTsKKworICAgIHB0c2gtPnNoYWRvd19sNF92YSA9IF9fbWFwX2RvbWFp bl9wYWdlX2dsb2JhbChwZyk7CisgICAgaWYgKCAhcHRzaC0+c2hhZG93X2w0X3ZhICkKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBwdF9zaGFkb3df ZnJlZSh1bnNpZ25lZCBpbnQgY3B1KQoreworICAgIHN0cnVjdCBwdF9zaGFkb3cgKnB0c2ggPSAm cGVyX2NwdShwdHNoLCBjcHUpOworCisgICAgaWYgKCBwdHNoLT5zaGFkb3dfbDRfdmEgKQorICAg IHsKKyAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKHB0c2gtPnNoYWRvd19sNF92YSk7 CisgICAgICAgIHB0c2gtPnNoYWRvd19sNF92YSA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKCBw dHNoLT5zaGFkb3dfbDQgKQorICAgIHsKKyAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2UobWFkZHJf dG9fcGFnZShwdHNoLT5zaGFkb3dfbDQpKTsKKyAgICAgICAgcHRzaC0+c2hhZG93X2w0ID0gMDsK KyAgICB9Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKaW5kZXggYWUzOWI0OC4u YTg1NTMwMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysgYi94ZW4vYXJj aC94ODYvc21wYm9vdC5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8YXNtL2ZsdXNodGxi Lmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+CisjaW5jbHVk ZSA8YXNtL3B2L3B0LXNoYWRvdy5oPgogI2luY2x1ZGUgPGFzbS90aW1lLmg+CiAjaW5jbHVkZSA8 YXNtL3Rib290Lmg+CiAjaW5jbHVkZSA8bWFjaF9hcGljLmg+CkBAIC02NTgsNiArNjU5LDEwIEBA IHN0YXRpYyBpbnQgY3B1X3NtcGJvb3RfYWxsb2NfY29tbW9uKHVuc2lnbmVkIGludCBjcHUpCiAg ICAgY2xlYXJfcGFnZShsNHQpOwogICAgIGluaXRfeGVuX2w0X3Nsb3RzKGw0dCwgcGFnZV90b19t Zm4ocGcpLCBOVUxMLCBJTlZBTElEX01GTiwgZmFsc2UpOwogCisgICAgcmMgPSBwdF9zaGFkb3df YWxsb2MoY3B1KTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgZ290byBvdXQ7CisKICAgICByYyA9 IDA7IC8qIFN1Y2Nlc3MgKi8KIAogIG91dDoKQEAgLTcyNiw2ICs3MzEsOCBAQCBzdGF0aWMgdm9p ZCBjcHVfc21wYm9vdF9mcmVlKHVuc2lnbmVkIGludCBjcHUpCiAgICAgICAgIGZyZWVfZG9taGVh cF9wYWdlKG1hZGRyX3RvX3BhZ2UocGVyX2NwdShwZXJjcHVfaWRsZV9wdCwgY3B1KSkpOwogICAg ICAgICBwZXJfY3B1KHBlcmNwdV9pZGxlX3B0LCBjcHUpID0gMDsKICAgICB9CisKKyAgICBwdF9z aGFkb3dfZnJlZShjcHUpOwogfQogCiBzdGF0aWMgaW50IGNwdV9zbXBib290X2FsbG9jKHVuc2ln bmVkIGludCBjcHUpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3B0LXNoYWRv dy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9wdC1zaGFkb3cuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5mZjk5Yzg1Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9wdi9wdC1zaGFkb3cuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogaW5jbHVk ZS9hc20teDg2L3B2L3B0LXNoYWRvdy5oCisgKgorICogUFYgUGFnZXRhYmxlIHNoYWRvd2luZyBs b2dpYyB0byBhbGxvdyBYZW4gdG8gcnVuIHdpdGggcGVyLXBjcHUgcGFnZXRhYmxlcy4KKyAqCisg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENp dHJpeCBTeXN0ZW1zIEx0ZC4KKyAqLworI2lmbmRlZiBfX1g4Nl9QVl9QVF9TSEFET1dfSF9fCisj ZGVmaW5lIF9fWDg2X1BWX1BUX1NIQURPV19IX18KKworI2lmZGVmIENPTkZJR19QVgorCisvKgor ICogQWxsb2NhdGUgYW4gZnJlZSBwZXItcGNwdSByZXNvdXJjZXMgZm9yIHBhZ2V0YWJsZSBzaGFk b3dpbmcuICBJZiBhbGxvYygpCisgKiByZXR1cm5zIG5vbnplcm8sIGl0IGlzIHRoZSBjYWxsZXJz IHJlc3BvbnNpYmlsaXR5IHRvIGNhbGwgZnJlZSgpLgorICovCitpbnQgcHRfc2hhZG93X2FsbG9j KHVuc2lnbmVkIGludCBjcHUpOwordm9pZCBwdF9zaGFkb3dfZnJlZSh1bnNpZ25lZCBpbnQgY3B1 KTsKKworI2Vsc2UgLyogIUNPTkZJR19QViAqLworCitzdGF0aWMgaW5saW5lIGludCBwdF9zaGFk b3dfYWxsb2ModW5zaWduZWQgaW50IGNwdSkgeyByZXR1cm4gMDsgfQorc3RhdGljIGlubGluZSB2 b2lkIHB0X3NoYWRvd19mcmVlKHVuc2lnbmVkIGludCBjcHUpIHsgfQorCisjZW5kaWYgLyogQ09O RklHX1BWICovCisKKyNlbmRpZiAvKiBfX1g4Nl9QVl9QVF9TSEFET1dfSF9fICovCisKKy8qCisg KiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisg KiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2Rl OiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs