From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 1/2] x86/hvm/viridian: keep APIC assist page mapped... Date: Thu, 17 Mar 2016 08:37:32 +0000 Message-ID: <1458203853-4441-2-git-send-email-paul.durrant@citrix.com> References: <1458203853-4441-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agTbY-0001Dv-DK for xen-devel@lists.xenproject.org; Thu, 17 Mar 2016 08:48:28 +0000 In-Reply-To: <1458203853-4441-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Paul Durrant , Keir Fraser , Jan Beulich List-Id: xen-devel@lists.xenproject.org Li4uIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGRvbWFpbi4KCklmIFhlbiBpcyB0byBtYWtlIHVz ZSBvZiB0aGUgQVBJQyBhc3Npc3QgZW5saWdodGVubWVudCB0aGVuIGEgcGVyc2lzdGVudAptYXBw aW5nIG5lZWRzIHRvIGJlIGtlcHQsIHJhdGhlciB0aGFuIHRoZSB0ZW1wb3Jhcnkgb25lIHdoaWNo IGlzIGN1cnJlbnRseQp1c2VkIG9ubHkgdG8gaW5pdGlhbGl6ZSB0aGUgcGFnZSBjb250ZW50LgoK VGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBjb21tZW50IGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHNv dXJjZSB3aXRoCmluZm9ybWF0aW9uIG9uIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYy4g ZnJvbSBNaWNyb3NvZnQgYW5kIHRoZQpjdXJyZW50IFVSTCB3aGVyZSBpdCBtYXkgYmUgZm91bmQu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpD YzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0t LQoKdjQ6CiAtIEFkZGVkIG1pc3NpbmcgdGVhcmRvd24gcmVxdWlyZWQgaWYgdGhlIE1TUiBpcyBy ZS13cml0dGVuLgoKdjI6CiAtIFJlLWluc3RhdGVkIHdhcm5pbmcgaWYgdGhlIGluaXRpYWxpemF0 aW9uIG9mIGFuIEFQSUMgYXNzaXN0IHBhZ2UgZmFpbHMuCiAtIEFkZGVkIHVwLXRvLWRhdGUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIHZpcmlkaWFuIHNwZWNpZmljYXRpb24gdG8gdGhlCiAgIGNvbW1l bnQgYmxvY2sgYXQgdGhlIHRvcCBvZiB0aGUgc291cmNlLgotLS0KIHhlbi9hcmNoL3g4Ni9odm0v aHZtLmMgICAgICAgICAgICAgfCAgMiArCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgICAg ICAgIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9pbmNs dWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmggfCAgOCArKystCiAzIGZpbGVzIGNoYW5nZWQsIDY2 IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDRlYTUxZDcuLmY0NDZl ZTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwpAQCAtMjYwNiw2ICsyNjA2LDggQEAgaW50IGh2bV92Y3B1X2luaXRpYWxpc2Uo c3RydWN0IHZjcHUgKnYpCiAKIHZvaWQgaHZtX3ZjcHVfZGVzdHJveShzdHJ1Y3QgdmNwdSAqdikK IHsKKyAgICB2aXJpZGlhbl92Y3B1X2RlaW5pdCh2KTsKKwogICAgIGh2bV9hbGxfaW9yZXFfc2Vy dmVyc19yZW1vdmVfdmNwdSh2LT5kb21haW4sIHYpOwogCiAgICAgaWYgKCBodm1fYWx0cDJtX3N1 cHBvcnRlZCgpICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYyBiL3hl bi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwppbmRleCAxZWUyMmFhLi5iODA5MTE4IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92 aXJpZGlhbi5jCkBAIC0xLDcgKzEsMTIgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIHZp cmlkaWFuLmMKICAqCi0gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVmlyaWRpYW4gaHlwZXJj YWxsIGludGVyZmFjZS4KKyAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgVmlyaWRpYW4gZW5s aWdodGVubWVudHMuIFNlZSBNaWNyb3NvZnQncworICogSHlwZXJ2aXNvciBUb3AgTGV2ZWwgRnVu Y3Rpb25hbCBTcGVjaWZpY2F0aW9uICh2NC4wYikgYXQ6CisgKgorICogaHR0cHM6Ly9tc2RuLm1p Y3Jvc29mdC5jb20vZW4tdXMvdmlydHVhbGl6YXRpb24vaHlwZXJ2X29uX3dpbmRvd3MvZGV2ZWxv cC90bGZzCisgKgorICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgKi8KIAogI2luY2x1ZGUgPHhl bi9zY2hlZC5oPgpAQCAtMTYzLDcgKzE2OCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfYXBpY19hc3Np c3QoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgY29uc3QgdW5pb24gdmlyaWRpYW5fYXBp Y19hc3Npc3QgKmFhOwogCi0gICAgYWEgPSAmdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGlj X2Fzc2lzdDsKKyAgICBhYSA9ICZ2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0 Lm1zcjsKIAogICAgIHByaW50ayhYRU5MT0dfR19JTkZPICIlcHY6IFZJUklESUFOIEFQSUNfQVNT SVNUOiBlbmFibGVkOiAleCBwZm46ICVseFxuIiwKICAgICAgICAgICAgdiwgYWEtPmZpZWxkcy5l bmFibGVkLCAodW5zaWduZWQgbG9uZylhYS0+ZmllbGRzLnBmbik7CkBAIC0yMTcsOSArMjIyLDkg QEAgc3RhdGljIHZvaWQgZW5hYmxlX2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBkb21haW4gKmQpCiBz dGF0aWMgdm9pZCBpbml0aWFsaXplX2FwaWNfYXNzaXN0KHN0cnVjdCB2Y3B1ICp2KQogewogICAg IHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47Ci0gICAgdW5zaWduZWQgbG9uZyBnbWZuID0g di0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC5maWVsZHMucGZuOworICAgIHVu c2lnbmVkIGxvbmcgZ21mbiA9IHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3Qu bXNyLmZpZWxkcy5wZm47CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IGdldF9wYWdlX2Zy b21fZ2ZuKGQsIGdtZm4sIE5VTEwsIFAyTV9BTExPQyk7Ci0gICAgdWludDhfdCAqcDsKKyAgICB2 b2lkICp2YTsKIAogICAgIC8qCiAgICAgICogV2UgZG9uJ3QgeWV0IG1ha2UgdXNlIG9mIHRoZSBB UElDIGFzc2lzdCBwYWdlIGJ1dCBieSBzZXR0aW5nCkBAIC0yMjcsMjUgKzIzMiw0OSBAQCBzdGF0 aWMgdm9pZCBpbml0aWFsaXplX2FwaWNfYXNzaXN0KHN0cnVjdCB2Y3B1ICp2KQogICAgICAqIGJv dW5kIHRvIHN1cHBvcnQgdGhlIE1TUi4gV2UgdGhlcmVmb3JlIGRvIGp1c3QgZW5vdWdoIHRvIGtl ZXAgd2luZG93cwogICAgICAqIGhhcHB5LgogICAgICAqCi0gICAgICogU2VlIGh0dHA6Ly9tc2Ru Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9mZjUzODY1NyUyOFZTLjg1JTI5LmFzcHggZm9y Ci0gICAgICogZGV0YWlscyBvZiBob3cgV2luZG93cyB1c2VzIHRoZSBwYWdlLgorICAgICAqIFNl ZSBzZWN0aW9uIDEzLjMuNC4xIG9mIHRoZSBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzIG9mIHRo aXMKKyAgICAgKiBlbmxpZ2h0ZW5tZW50LgogICAgICAqLwogCi0gICAgaWYgKCAhcGFnZSB8fCAh Z2V0X3BhZ2VfdHlwZShwYWdlLCBQR1Rfd3JpdGFibGVfcGFnZSkgKQorICAgIGlmICggIXBhZ2Ug KQorICAgICAgICBnb3RvIGZhaWw7CisKKyAgICBpZiAoICFnZXRfcGFnZV90eXBlKHBhZ2UsIFBH VF93cml0YWJsZV9wYWdlKSApCiAgICAgewotICAgICAgICBpZiAoIHBhZ2UgKQotICAgICAgICAg ICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFk IEdNRk4gJWx4IChNRk4gJWx4KVxuIiwgZ21mbiwKLSAgICAgICAgICAgICAgICAgcGFnZSA/IHBh Z2VfdG9fbWZuKHBhZ2UpIDogSU5WQUxJRF9NRk4pOwotICAgICAgICByZXR1cm47CisgICAgICAg IHB1dF9wYWdlKHBhZ2UpOworICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgcCA9IF9f bWFwX2RvbWFpbl9wYWdlKHBhZ2UpOworICAgIHZhID0gX19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFs KHBhZ2UpOworICAgIGlmICggIXZhICkKKyAgICB7CisgICAgICAgIHB1dF9wYWdlX2FuZF90eXBl KHBhZ2UpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQogCi0gICAgKih1MzIgKilwID0gMDsK KyAgICAqKHVpbnQzMl90ICopdmEgPSAwOwogCi0gICAgdW5tYXBfZG9tYWluX3BhZ2UocCk7Cisg ICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC5wYWdlID0gcGFnZTsKKyAg ICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZhID0gdmE7CisgICAgcmV0 dXJuOworCisgZmFpbDoKKyAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkJhZCBHTUZOICVs eCAoTUZOICVseClcbiIsIGdtZm4sCisgICAgICAgICAgICAgcGFnZSA/IHBhZ2VfdG9fbWZuKHBh Z2UpIDogSU5WQUxJRF9NRk4pOworfQorCitzdGF0aWMgdm9pZCB0ZWFyZG93bl9hcGljX2Fzc2lz dChzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gdi0+YXJj aC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC5wYWdlOworICAgIHZvaWQgKnZhID0gdi0+ YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52YTsKIAorICAgIGlmICggIXZhICkK KyAgICAgICAgcmV0dXJuOworCisgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fz c2lzdC52YSA9IE5VTEw7CisgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lz dC5wYWdlID0gTlVMTDsKKworICAgIHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbCh2YSk7CiAgICAg cHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7CiB9CiAKQEAgLTM3NCw5ICs0MDMsMTAgQEAgaW50IHdy bXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAKICAgICBjYXNl IFZJUklESUFOX01TUl9BUElDX0FTU0lTVDoKICAgICAgICAgcGVyZmNfaW5jcihtc2h2X3dybXNy X2FwaWNfbXNyKTsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lz dC5yYXcgPSB2YWw7CisgICAgICAgIHRlYXJkb3duX2FwaWNfYXNzaXN0KHYpOyAvKiByZWxlYXNl IGFueSBwcmV2aW91cyBtYXBwaW5nICovCisgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRp YW4uYXBpY19hc3Npc3QubXNyLnJhdyA9IHZhbDsKICAgICAgICAgZHVtcF9hcGljX2Fzc2lzdCh2 KTsKLSAgICAgICAgaWYgKHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QuZmll bGRzLmVuYWJsZWQpCisgICAgICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGlj X2Fzc2lzdC5tc3IuZmllbGRzLmVuYWJsZWQgKQogICAgICAgICAgICAgaW5pdGlhbGl6ZV9hcGlj X2Fzc2lzdCh2KTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTQ4NSw3ICs1MTUsNyBAQCBpbnQgcmRt c3JfdmlyaWRpYW5fcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90ICp2YWwpCiAKICAgICBjYXNl IFZJUklESUFOX01TUl9BUElDX0FTU0lTVDoKICAgICAgICAgcGVyZmNfaW5jcihtc2h2X3JkbXNy X2FwaWNfbXNyKTsKLSAgICAgICAgKnZhbCA9IHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBp Y19hc3Npc3QucmF3OworICAgICAgICAqdmFsID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5h cGljX2Fzc2lzdC5tc3IucmF3OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVklSSURJQU5f TVNSX1JFRkVSRU5DRV9UU0M6CkBAIC01MjEsNiArNTUxLDExIEBAIGludCByZG1zcl92aXJpZGlh bl9yZWdzKHVpbnQzMl90IGlkeCwgdWludDY0X3QgKnZhbCkKICAgICByZXR1cm4gMTsKIH0KIAor dm9pZCB2aXJpZGlhbl92Y3B1X2RlaW5pdChzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICB0ZWFyZG93 bl9hcGljX2Fzc2lzdCh2KTsKK30KKwogc3RhdGljIERFRklORV9QRVJfQ1BVKGNwdW1hc2tfdCwg aXBpX2NwdW1hc2spOwogCiBpbnQgdmlyaWRpYW5faHlwZXJjYWxsKHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQpAQCAtNzIxLDcgKzc1Niw3IEBAIHN0YXRpYyBpbnQgdmlyaWRpYW5fc2F2ZV92 Y3B1X2N0eHQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAg Zm9yX2VhY2hfdmNwdSggZCwgdiApIHsKICAgICAgICAgc3RydWN0IGh2bV92aXJpZGlhbl92Y3B1 X2NvbnRleHQgY3R4dDsKIAotICAgICAgICBjdHh0LmFwaWNfYXNzaXN0ID0gdi0+YXJjaC5odm1f dmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC5yYXc7CisgICAgICAgIGN0eHQuYXBpY19hc3Npc3Qg PSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0Lm1zci5yYXc7CiAKICAgICAg ICAgaWYgKCBodm1fc2F2ZV9lbnRyeShWSVJJRElBTl9WQ1BVLCB2LT52Y3B1X2lkLCBoLCAmY3R4 dCkgIT0gMCApCiAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTc0Nyw3ICs3ODIsOSBAQCBzdGF0 aWMgaW50IHZpcmlkaWFuX2xvYWRfdmNwdV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21h aW5fY29udGV4dF90ICpoKQogICAgIGlmICggaHZtX2xvYWRfZW50cnkoVklSSURJQU5fVkNQVSwg aCwgJmN0eHQpICE9IDAgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHYtPmFyY2gu aHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QucmF3ID0gY3R4dC5hcGljX2Fzc2lzdDsKKyAg ICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0Lm1zci5yYXcgPSBjdHh0LmFw aWNfYXNzaXN0OworICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lz dC5tc3IuZmllbGRzLmVuYWJsZWQgKQorICAgICAgICBpbml0aWFsaXplX2FwaWNfYXNzaXN0KHYp OwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92aXJpZGlhbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmlyaWRpYW4uaAppbmRleCBj NDMxOWQ3Li5lZTNhMTIwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92aXJp ZGlhbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmgKQEAgLTIxLDcg KzIxLDExIEBAIHVuaW9uIHZpcmlkaWFuX2FwaWNfYXNzaXN0CiAKIHN0cnVjdCB2aXJpZGlhbl92 Y3B1CiB7Ci0gICAgdW5pb24gdmlyaWRpYW5fYXBpY19hc3Npc3QgYXBpY19hc3Npc3Q7CisgICAg c3RydWN0IHsKKyAgICAgICAgdW5pb24gdmlyaWRpYW5fYXBpY19hc3Npc3QgbXNyOworICAgICAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOworICAgICAgICB2b2lkICp2YTsKKyAgICB9IGFwaWNf YXNzaXN0OwogfTsKIAogdW5pb24gdmlyaWRpYW5fZ3Vlc3Rfb3NfaWQKQEAgLTExNyw2ICsxMjEs OCBAQCB2aXJpZGlhbl9oeXBlcmNhbGwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOwogdm9p ZCB2aXJpZGlhbl90aW1lX3JlZl9jb3VudF9mcmVlemUoc3RydWN0IGRvbWFpbiAqZCk7CiB2b2lk IHZpcmlkaWFuX3RpbWVfcmVmX2NvdW50X3RoYXcoc3RydWN0IGRvbWFpbiAqZCk7CiAKK3ZvaWQg dmlyaWRpYW5fdmNwdV9kZWluaXQoc3RydWN0IHZjcHUgKnYpOworCiAjZW5kaWYgLyogX19BU01f WDg2X0hWTV9WSVJJRElBTl9IX18gKi8KIAogLyoKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK