From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 18/19] x86/hvm: Prepare to allow use of system segments for memory references Date: Mon, 28 Nov 2016 11:13:35 +0000 Message-ID: <1480331616-6165-19-git-send-email-andrew.cooper3@citrix.com> References: <1480331616-6165-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: <1480331616-6165-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org QWxsIHN5c3RlbSBzZWdtZW50cyAoR0RUL0lEVC9MRFQgYW5kIFRSKSBkZXNjcmliZSBhIGxpbmVh ciBhZGRyZXNzIGFuZCBsaW1pdCwKYW5kIGFjdCBzaW1pbGFybHkgdG8gdXNlciBzZWdtZW50cy4g IEhvd2V2ZXIgYWxsIGN1cnJlbnQgdXNlcyBvZiB0aGVzZSB0YWJsZXMKaW4gdGhlIGVtdWxhdG9y IG9wZW5jb2RlIHRoZSBhZGRyZXNzIGNhbGN1bGF0aW9ucyBhbmQgbGltaXQgY2hlY2tzLiAgSW4K cGFydGljdWxhciwgbm8gY2FyZSBpcyB0YWtlbiBmb3IgYWNjZXNzIHdoaWNoIHdyYXAgYXJvdW5k IHRoZSA0R0Igb3IKbm9uLWNhbm9uaWNhbCBib3VuZGFyaWVzLgoKQWx0ZXIgaHZtX3ZpcnR1YWxf dG9fbGluZWFyX2FkZHIoKSB0byBjb3BlIHdpdGggcGVyZm9ybWluZyBzZWdtZW50YXRpb24gY2hl Y2tzCm9uIHN5c3RlbSBzZWdtZW50cy4gIFRoaXMgaW52b2x2ZXMgcmVzdHJpY3RpbmcgYWNjZXNz IGNoZWNrcyBpbiB0aGUgMzJiaXQgY2FzZQp0byB1c2VyIHNlZ21lbnRzIG9ubHksIGFuZCBhZGRp bmcgcHJlc2VuY2UvbGltaXQgY2hlY2tzIGluIHRoZSA2NGJpdCBjYXNlLgoKV2hlbiBzdWZmZXJp bmcgYSBzZWdtZW50YXRpb24gZmF1bHQgZm9yIGEgc3lzdGVtIHNlZ21lbnRzLCByZXR1cm4KWDg2 RU1VTF9FWENFUFRJT04gYnV0IGxlYXZlIHRoZSBmYXVsdCBpbmplY3Rpb24gdG8gdGhlIGNhbGxl ci4gIFRoZSBmYXVsdCB0eXBlCmRlcGVuZHMgb24gdGhlIGhpZ2hlciBsZXZlbCBhY3Rpb24gYmVp bmcgcGVyZm9ybWVkLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4K UmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQog eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAgICAgICAgfCAxNCArKysrKysrKy0tLS0K IHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAg ICAgICAgfCAxMiArKysrKysrLS0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxh dGUuaCB8IDI2ICsrKysrKysrKysrKysrLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNjIgaW5z ZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCBmMDdjMDI2Li5k M2ZkNDkyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4v YXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtNTY3LDEwICs1NjcsMTYgQEAgc3RhdGljIGludCBo dm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKAogICAgIGlmICggKnJlcHMgIT0gMSApCiAgICAgICAg IHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKIAotICAgIC8qIFRoaXMgaXMgYSBzaW5nbGV0 b24gb3BlcmF0aW9uOiBmYWlsIGl0IHdpdGggYW4gZXhjZXB0aW9uLiAqLwotICAgIHg4Nl9lbXVs X2h3X2V4Y2VwdGlvbigoc2VnID09IHg4Nl9zZWdfc3MpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgID8gVFJBUF9zdGFja19lcnJvcgotICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRSQVBf Z3BfZmF1bHQsIDAsICZodm1lbXVsX2N0eHQtPmN0eHQpOworICAgIC8qCisgICAgICogTGVhdmUg ZXhjZXB0aW9uIGluamVjdGlvbiB0byB0aGUgY2FsbGVyIGZvciBub24tdXNlciBzZWdtZW50czog V2UKKyAgICAgKiBuZWl0aGVyIGtub3cgdGhlIGV4YWN0IGVycm9yIGNvZGUgdG8gYmUgdXNlZCwg bm9yIGNhbiB3ZSBlYXNpbHkKKyAgICAgKiBkZXRlcm1pbmUgdGhlIGtpbmQgb2YgZXhjZXB0aW9u ICgjR1Agb3IgI1RTKSBpbiB0aGF0IGNhc2UuCisgICAgICovCisgICAgaWYgKCBpc194ODZfdXNl cl9zZWdtZW50KHNlZykgKQorICAgICAgICB4ODZfZW11bF9od19leGNlcHRpb24oKHNlZyA9PSB4 ODZfc2VnX3NzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBUUkFQX3N0YWNrX2Vy cm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRSQVBfZ3BfZmF1bHQsIDAsICZo dm1lbXVsX2N0eHQtPmN0eHQpOworCiAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogfQog CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9o dm0uYwppbmRleCBjZTc3NTIwLi41YWJkYzNjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTI0OTcsMjQgKzI0OTcsMjgg QEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRyKAogICAgICAgICBpZiAoICFyZWct PmF0dHIuZmllbGRzLnAgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAKLSAgICAgICAgc3dpdGNo ICggYWNjZXNzX3R5cGUgKQorICAgICAgICAvKiBSZWFkL3dyaXRlIHJlc3RyaWN0aW9ucyBvbmx5 IGV4aXN0IGZvciB1c2VyIHNlZ21lbnRzLiAqLworICAgICAgICBpZiAoIHJlZy0+YXR0ci5maWVs ZHMucyApCiAgICAgICAgIHsKLSAgICAgICAgY2FzZSBodm1fYWNjZXNzX3JlYWQ6Ci0gICAgICAg ICAgICBpZiAoIChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGEpID09IDB4OCApCi0gICAgICAg ICAgICAgICAgZ290byBvdXQ7IC8qIGV4ZWN1dGUtb25seSBjb2RlIHNlZ21lbnQgKi8KLSAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIGh2bV9hY2Nlc3Nfd3JpdGU6Ci0gICAgICAgICAg ICBpZiAoIChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGEpICE9IDB4MiApCi0gICAgICAgICAg ICAgICAgZ290byBvdXQ7IC8qIG5vdCBhIHdyaXRhYmxlIGRhdGEgc2VnbWVudCAqLwotICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIHN3aXRjaCAoIGFjY2Vzc190eXBlICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg IGNhc2UgaHZtX2FjY2Vzc19yZWFkOgorICAgICAgICAgICAgICAgIGlmICggKHJlZy0+YXR0ci5m aWVsZHMudHlwZSAmIDB4YSkgPT0gMHg4ICkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7 IC8qIGV4ZWN1dGUtb25seSBjb2RlIHNlZ21lbnQgKi8KKyAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgIGNhc2UgaHZtX2FjY2Vzc193cml0ZToKKyAgICAgICAgICAgICAgICBpZiAo IChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGEpICE9IDB4MiApCisgICAgICAgICAgICAgICAg ICAgIGdvdG8gb3V0OyAvKiBub3QgYSB3cml0YWJsZSBkYXRhIHNlZ21lbnQgKi8KKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBsYXN0X2J5dGUgPSAodWlu dDMyX3Qpb2Zmc2V0ICsgYnl0ZXMgLSAhIWJ5dGVzOwogCiAgICAgICAgIC8qIElzIHRoaXMgYSBn cm93cy1kb3duIGRhdGEgc2VnbWVudD8gU3BlY2lhbCBsaW1pdCBjaGVjayBpZiBzby4gKi8KLSAg ICAgICAgaWYgKCAocmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHhjKSA9PSAweDQgKQorICAgICAg ICBpZiAoIHJlZy0+YXR0ci5maWVsZHMucyAmJiAocmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHhj KSA9PSAweDQgKQogICAgICAgICB7CiAgICAgICAgICAgICAvKiBJcyB1cHBlciBsaW1pdCAweEZG RkYgb3IgMHhGRkZGRkZGRj8gKi8KICAgICAgICAgICAgIGlmICggIXJlZy0+YXR0ci5maWVsZHMu ZGIgKQpAQCAtMjUzMCwxMCArMjUzNCwxOCBAQCBib29sX3QgaHZtX3ZpcnR1YWxfdG9fbGluZWFy X2FkZHIoCiAgICAgZWxzZQogICAgIHsKICAgICAgICAgLyoKLSAgICAgICAgICogTE9ORyBNT0RF OiBGUyBhbmQgR1MgYWRkIHNlZ21lbnQgYmFzZS4gQWRkcmVzc2VzIG11c3QgYmUgY2Fub25pY2Fs LgorICAgICAgICAgKiBVc2VyIHNlZ21lbnRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyBwcmVzZW50 LiAgU3lzdGVtIHNlZ21lbnQgbWF5CisgICAgICAgICAqIG5vdCBiZSwgYW5kIGFsc28gaW5jdXIg bGltaXQgY2hlY2tzLgogICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBpc194ODZfc3lzdGVtX3Nl Z21lbnQoc2VnKSAmJgorICAgICAgICAgICAgICghcmVnLT5hdHRyLmZpZWxkcy5wIHx8IChvZmZz ZXQgKyBieXRlcyAtICEhYnl0ZXMpID4gcmVnLT5saW1pdCkgKQorICAgICAgICAgICAgZ290byBv dXQ7CiAKLSAgICAgICAgaWYgKCAoc2VnID09IHg4Nl9zZWdfZnMpIHx8IChzZWcgPT0geDg2X3Nl Z19ncykgKQorICAgICAgICAvKgorICAgICAgICAgKiBMT05HIE1PREU6IEZTLCBHUyBhbmQgc3lz dGVtIHNlZ21lbnRzOiBhZGQgc2VnbWVudCBiYXNlLiBBbGwKKyAgICAgICAgICogYWRkcmVzc2Vz IG11c3QgYmUgY2Fub25pY2FsLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBzZWcgPj0geDg2 X3NlZ19mcyApCiAgICAgICAgICAgICBhZGRyICs9IHJlZy0+YmFzZTsKIAogICAgICAgICBsYXN0 X2J5dGUgPSBhZGRyICsgYnl0ZXMgLSAhIWJ5dGVzOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKaW5k ZXggZmJlNDllMS4uNmMxNDZmOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9j b21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCkBAIC0xNjIsOSAr MTYyLDE1IEBAIHN0YXRpYyBpbnQgaHZtX3RyYW5zbGF0ZV9saW5lYXJfYWRkcigKIAogICAgIGlm ICggIW9rYXkgKQogICAgIHsKLSAgICAgICAgeDg2X2VtdWxfaHdfZXhjZXB0aW9uKAotICAgICAg ICAgICAgKHNlZyA9PSB4ODZfc2VnX3NzKSA/IFRSQVBfc3RhY2tfZXJyb3IgOiBUUkFQX2dwX2Zh dWx0LAotICAgICAgICAgICAgMCwgJnNoX2N0eHQtPmN0eHQpOworICAgICAgICAvKgorICAgICAg ICAgKiBMZWF2ZSBleGNlcHRpb24gaW5qZWN0aW9uIHRvIHRoZSBjYWxsZXIgZm9yIG5vbi11c2Vy IHNlZ21lbnRzOiBXZQorICAgICAgICAgKiBuZWl0aGVyIGtub3cgdGhlIGV4YWN0IGVycm9yIGNv ZGUgdG8gYmUgdXNlZCwgbm9yIGNhbiB3ZSBlYXNpbHkKKyAgICAgICAgICogZGV0ZXJtaW5lIHRo ZSBraW5kIG9mIGV4Y2VwdGlvbiAoI0dQIG9yICNUUykgaW4gdGhhdCBjYXNlLgorICAgICAgICAg Ki8KKyAgICAgICAgaWYgKCBpc194ODZfdXNlcl9zZWdtZW50KHNlZykgKQorICAgICAgICAgICAg eDg2X2VtdWxfaHdfZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgIChzZWcgPT0geDg2X3NlZ19z cykgPyBUUkFQX3N0YWNrX2Vycm9yIDogVFJBUF9ncF9mYXVsdCwKKyAgICAgICAgICAgICAgICAw LCAmc2hfY3R4dC0+Y3R4dCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAg ICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5o IGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKaW5kZXggNDY3OTcxMS4u NWFmMTk1OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRl LmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKQEAgLTI3LDcg KzI3LDExIEBACiAKIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0OwogCi0vKiBDb21wcmVoZW5zaXZl IGVudW1lcmF0aW9uIG9mIHg4NiBzZWdtZW50IHJlZ2lzdGVycy4gKi8KKy8qCisgKiBDb21wcmVo ZW5zaXZlIGVudW1lcmF0aW9uIG9mIHg4NiBzZWdtZW50IHJlZ2lzdGVycy4gIFZhcmlvdXMgYml0 cyBvZiBjb2RlCisgKiByZWx5IG9uIHRoaXMgb3JkZXIgKGdlbmVyYWwgcHVycG9zZSBiZWZvcmUg c3lzdGVtLCB0ciBhdCB0aGUgYmVnaW5uaW5nIG9mCisgKiBzeXN0ZW0pLgorICovCiBlbnVtIHg4 Nl9zZWdtZW50IHsKICAgICAvKiBHZW5lcmFsIHB1cnBvc2UuICBNYXRjaGVzIHRoZSBTUmVnMyBl bmNvZGluZyBpbiBvcGNvZGUvTW9kUk0gYnl0ZXMuICovCiAgICAgeDg2X3NlZ19lcywKQEAgLTM2 LDIxICs0MCwyNSBAQCBlbnVtIHg4Nl9zZWdtZW50IHsKICAgICB4ODZfc2VnX2RzLAogICAgIHg4 Nl9zZWdfZnMsCiAgICAgeDg2X3NlZ19ncywKLSAgICAvKiBTeXN0ZW0uICovCisgICAgLyogU3lz dGVtOiBWYWxpZCB0byB1c2UgZm9yIGltcGxpY2l0IHRhYmxlIHJlZmVyZW5jZXMuICovCiAgICAg eDg2X3NlZ190ciwKICAgICB4ODZfc2VnX2xkdHIsCiAgICAgeDg2X3NlZ19nZHRyLAogICAgIHg4 Nl9zZWdfaWR0ciwKLSAgICAvKgotICAgICAqIER1bW15OiB1c2VkIHRvIGVtdWxhdGUgZGlyZWN0 IHByb2Nlc3NvciBhY2Nlc3NlcyB0byBtYW5hZ2VtZW50Ci0gICAgICogc3RydWN0dXJlcyAoVFNT LCBHRFQsIExEVCwgSURULCBldGMuKSB3aGljaCB1c2UgbGluZWFyIGFkZHJlc3NpbmcKLSAgICAg KiAobm8gc2VnbWVudCBjb21wb25lbnQpIGFuZCBieXBhc3MgdXN1YWwgc2VnbWVudC0gYW5kIHBh Z2UtbGV2ZWwKLSAgICAgKiBwcm90ZWN0aW9uIGNoZWNrcy4KLSAgICAgKi8KKyAgICAvKiBObyBT ZWdtZW50OiBGb3IgYWNjZXNzZXMgd2hpY2ggYXJlIGFscmVhZHkgbGluZWFyLiAqLwogICAgIHg4 Nl9zZWdfbm9uZQogfTsKIAotI2RlZmluZSBpc194ODZfdXNlcl9zZWdtZW50KHNlZykgKCh1bnNp Z25lZCkoc2VnKSA8PSB4ODZfc2VnX2dzKQorc3RhdGljIGlubGluZSBib29sIGlzX3g4Nl91c2Vy X3NlZ21lbnQoZW51bSB4ODZfc2VnbWVudCBzZWcpCit7CisgICAgdW5zaWduZWQgaW50IGlkeCA9 IHNlZzsKKworICAgIHJldHVybiBpZHggPD0geDg2X3NlZ19nczsKK30KK3N0YXRpYyBpbmxpbmUg Ym9vbCBpc194ODZfc3lzdGVtX3NlZ21lbnQoZW51bSB4ODZfc2VnbWVudCBzZWcpCit7CisgICAg cmV0dXJuIHNlZyA+PSB4ODZfc2VnX3RyICYmIHNlZyA8IHg4Nl9zZWdfbm9uZTsKK30KIAogLyog Q2xhc3NpZmljYXRpb24gb2YgdGhlIHR5cGVzIG9mIHNvZnR3YXJlIGdlbmVyYXRlZCBpbnRlcnJ1 cHRzL2V4Y2VwdGlvbnMuICovCiBlbnVtIHg4Nl9zd2ludF90eXBlIHsKLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==