From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 17/28] x86/vvtd: save and restore emulated VT-d Date: Fri, 17 Nov 2017 14:22:24 +0800 Message-ID: <1510899755-40237-18-git-send-email-chao.gao@intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1510899755-40237-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , Kevin Tian , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Tim Deegan , Ian Jackson , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org UHJvdmlkZSBhIHNhdmUtcmVzdG9yZSBwYWlyIHRvIHNhdmUvcmVzdG9yZSByZWdpc3RlcnMgYW5k IG5vbi1yZWdpc3RlcgpzdGF0dXMuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9A aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMYW4gVGlhbnl1IDx0aWFueXUubGFuQGludGVsLmNv bT4KLS0tCnYzOgogLSB1c2Ugb25lIGVudHJ5IHRvIHNhdmUgYm90aCB2dnRkIHJlZ2lzdGVycyBh bmQgb3RoZXIgaW50ZXJtZWRpYXRlCiBzdGF0ZQotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC92dnRkLmMgICAgIHwgNTcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQog eGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2h2bS9zYXZlLmggfCAxOCArKysrKysrKysrLQog MiBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3Z2dGQuYwppbmRleCA4MTE3MGVjLi5mNmJkZTY5IDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC92dnRkLmMKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSA8YXNtL2V2 ZW50Lmg+CiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KICNpbmNsdWRlIDxhc20vaHZtL2RvbWFp bi5oPgorI2luY2x1ZGUgPGFzbS9odm0vc2F2ZS5oPgogI2luY2x1ZGUgPGFzbS9odm0vc3VwcG9y dC5oPgogI2luY2x1ZGUgPGFzbS9wMm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvaHZtL3NhdmUuaD4K IAogI2luY2x1ZGUgImlvbW11LmgiCiAjaW5jbHVkZSAidnRkLmgiCkBAIC0zOCwyMCArNDAsNiBA QAogCiAjZGVmaW5lIFZWVERfRlJDRF9OVU0gICAxVUxMCiAjZGVmaW5lIFZWVERfRlJDRF9TVEFS VCAoRE1BUl9JUlRBX1JFRyArIDgpCi0jZGVmaW5lIFZWVERfRlJDRF9FTkQgICAoVlZURF9GUkNE X1NUQVJUICsgVlZURF9GUkNEX05VTSAqIDE2KQotI2RlZmluZSBWVlREX01BWF9PRkZTRVQgVlZU RF9GUkNEX0VORAotCi1zdHJ1Y3QgaHZtX2h3X3Z2dGQgewotICAgIGJvb2wgZWltX2VuYWJsZWQ7 Ci0gICAgYm9vbCBpbnRyZW1hcF9lbmFibGVkOwotICAgIHVpbnQzMl90IGZhdWx0X2luZGV4Owot Ci0gICAgLyogSW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSBiYXNlIGdmbiBhbmQgdGhlIG1heCBv ZiBlbnRyaWVzICovCi0gICAgdWludDE2X3QgaXJ0X21heF9lbnRyeTsKLSAgICBnZm5fdCBpcnQ7 Ci0KLSAgICB1aW50MzJfdCByZWdzW1ZWVERfTUFYX09GRlNFVC9zaXplb2YodWludDMyX3QpXTsK LX07CiAKIHN0cnVjdCB2dnRkIHsKICAgICAvKiBCYXNlIGFkZHJlc3Mgb2YgcmVtYXBwaW5nIGhh cmR3YXJlIHJlZ2lzdGVyLXNldCAqLwpAQCAtNzc2LDcgKzc2NCw3IEBAIHN0YXRpYyB2b2lkIHdy aXRlX2djbWRfc2lydHAoc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHZhbCkKICAgICBpZiAo IHZ2dGQtPmh3LmludHJlbWFwX2VuYWJsZWQgKQogICAgICAgICB2dnRkX2luZm8oIlVwZGF0ZSBJ bnRlcnJ1cHQgUmVtYXBwaW5nIFRhYmxlIHdoZW4gYWN0aXZlXG4iKTsKIAotICAgIGlmICggZ2Zu X3godnZ0ZC0+aHcuaXJ0KSAhPSBQRk5fRE9XTihETUFfSVJUQV9BRERSKGlydGEpKSB8fAorICAg IGlmICggdnZ0ZC0+aHcuaXJ0ICE9IFBGTl9ET1dOKERNQV9JUlRBX0FERFIoaXJ0YSkpIHx8CiAg ICAgICAgICB2dnRkLT5ody5pcnRfbWF4X2VudHJ5ICE9IERNQV9JUlRBX1NJWkUoaXJ0YSkgKQog ICAgIHsKICAgICAgICAgaWYgKCB2dnRkLT5pcnRfYmFzZSApCkBAIC03ODYsMTQgKzc3NCwxNCBA QCBzdGF0aWMgdm9pZCB3cml0ZV9nY21kX3NpcnRwKHN0cnVjdCB2dnRkICp2dnRkLCB1aW50MzJf dCB2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVj dCBpcmVtYXBfZW50cnkpKSk7CiAgICAgICAgICAgICB2dnRkLT5pcnRfYmFzZSA9IE5VTEw7CiAg ICAgICAgIH0KLSAgICAgICAgdnZ0ZC0+aHcuaXJ0ID0gX2dmbihQRk5fRE9XTihETUFfSVJUQV9B RERSKGlydGEpKSk7CisgICAgICAgIHZ2dGQtPmh3LmlydCA9IFBGTl9ET1dOKERNQV9JUlRBX0FE RFIoaXJ0YSkpOwogICAgICAgICB2dnRkLT5ody5pcnRfbWF4X2VudHJ5ID0gRE1BX0lSVEFfU0la RShpcnRhKTsKICAgICAgICAgdnZ0ZC0+aHcuZWltX2VuYWJsZWQgPSAhIShpcnRhICYgSVJUQV9F SU1FKTsKICAgICAgICAgdnZ0ZF9pbmZvKCJVcGRhdGUgSVIgaW5mbyAoYWRkcj0lbHggZWltPSVk IHNpemU9JWQpXG4iLAotICAgICAgICAgICAgICAgICAgZ2ZuX3godnZ0ZC0+aHcuaXJ0KSwgdnZ0 ZC0+aHcuZWltX2VuYWJsZWQsCisgICAgICAgICAgICAgICAgICB2dnRkLT5ody5pcnQsIHZ2dGQt Pmh3LmVpbV9lbmFibGVkLAogICAgICAgICAgICAgICAgICAgdnZ0ZC0+aHcuaXJ0X21heF9lbnRy eSk7CiAKLSAgICAgICAgdnZ0ZC0+aXJ0X2Jhc2UgPSBtYXBfZ3Vlc3RfcGFnZXModnZ0ZC0+ZG9t YWluLCBnZm5feCh2dnRkLT5ody5pcnQpLAorICAgICAgICB2dnRkLT5pcnRfYmFzZSA9IG1hcF9n dWVzdF9wYWdlcyh2dnRkLT5kb21haW4sIHZ2dGQtPmh3LmlydCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUEZOX1VQKHZ2dGQtPmh3LmlydF9tYXhfZW50cnkgKgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0 cnVjdCBpcmVtYXBfZW50cnkpKSk7CiAgICAgfQpAQCAtMTEzOCw2ICsxMTI2LDM5IEBAIHN0YXRp YyBib29sIHZ2dGRfaXNfcmVtYXBwaW5nKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAgcmV0 dXJuICFpcnFfcmVtYXBwaW5nX3JlcXVlc3RfaW5kZXgoaXJxLCAmaWR4KTsKIH0KIAorc3RhdGlj IGludCB2dnRkX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgp Cit7CisgICAgc3RydWN0IHZ2dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZChkKTsKKyAgICB1aW50NjRf dCBpcWE7CisKKyAgICBpZiAoICF2dnRkICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisKKyAg ICBpZiAoIGh2bV9sb2FkX2VudHJ5KFZWVEQsIGgsICZ2dnRkLT5odykgKQorICAgICAgICByZXR1 cm4gLUVJTlZBTDsKKworICAgIGlxYSA9IHZ2dGRfZ2V0X3JlZ19xdWFkKHZ2dGQsIERNQVJfSVFB X1JFRyk7CisgICAgdnZ0ZC0+aXJ0X2Jhc2UgPSBtYXBfZ3Vlc3RfcGFnZXModnZ0ZC0+ZG9tYWlu LCB2dnRkLT5ody5pcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZO X1VQKHZ2dGQtPmh3LmlydF9tYXhfZW50cnkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGlyZW1hcF9lbnRyeSkpKTsKKyAgICB2dnRk LT5pbnZfcXVldWVfYmFzZSA9IG1hcF9ndWVzdF9wYWdlcyh2dnRkLT5kb21haW4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04oRE1BX0lRQV9BRERS KGlxYSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwg RE1BX0lRQV9RUyhpcWEpKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCB2dnRkX3Nh dmUoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCit7CisgICAgc3Ry dWN0IHZ2dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZChkKTsKKworICAgIGlmICggIXZ2dGQgKQorICAg ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBodm1fc2F2ZV9lbnRyeShWVlRELCAwLCBoLCAm dnZ0ZC0+aHcpOworfQorCitIVk1fUkVHSVNURVJfU0FWRV9SRVNUT1JFKFZWVEQsIHZ2dGRfc2F2 ZSwgdnZ0ZF9sb2FkLCAxLCBIVk1TUl9QRVJfRE9NKTsKKwogc3RhdGljIHZvaWQgdnZ0ZF9yZXNl dChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCkKIHsKICAgICB1aW50NjRfdCBjYXAgPSBjYXBfc2V0X251bV9m YXVsdF9yZWdzKFZWVERfRlJDRF9OVU0pCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMv YXJjaC14ODYvaHZtL3NhdmUuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9odm0vc2F2 ZS5oCmluZGV4IGZkN2JmM2YuLjI0YTUxM2IgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9hcmNoLXg4Ni9odm0vc2F2ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9o dm0vc2F2ZS5oCkBAIC02MzksMTAgKzYzOSwyNiBAQCBzdHJ1Y3QgaHZtX21zciB7CiAKICNkZWZp bmUgQ1BVX01TUl9DT0RFICAyMAogCisjZGVmaW5lIFZWVERfTUFYX09GRlNFVCAweGQwCitzdHJ1 Y3QgaHZtX2h3X3Z2dGQKK3sKKyAgICB1aW50MzJfdCBlaW1fZW5hYmxlZCA6IDEsCisgICAgICAg ICAgICAgaW50cmVtYXBfZW5hYmxlZCA6IDE7CisgICAgdWludDMyX3QgZmF1bHRfaW5kZXg7CisK KyAgICAvKiBJbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIGJhc2UgZ2ZuIGFuZCB0aGUgbWF4IG9m IGVudHJpZXMgKi8KKyAgICB1aW50MzJfdCBpcnRfbWF4X2VudHJ5OworICAgIHVpbnQ2NF90IGly dDsKKworICAgIHVpbnQzMl90IHJlZ3NbVlZURF9NQVhfT0ZGU0VUL3NpemVvZih1aW50MzJfdCld OworfTsKKworREVDTEFSRV9IVk1fU0FWRV9UWVBFKFZWVEQsIDIxLCBzdHJ1Y3QgaHZtX2h3X3Z2 dGQpOworCiAvKiAKICAqIExhcmdlc3QgdHlwZS1jb2RlIGluIHVzZQogICovCi0jZGVmaW5lIEhW TV9TQVZFX0NPREVfTUFYIDIwCisjZGVmaW5lIEhWTV9TQVZFX0NPREVfTUFYIDIxCiAKICNlbmRp ZiAvKiBfX1hFTl9QVUJMSUNfSFZNX1NBVkVfWDg2X0hfXyAqLwogCi0tIAoxLjguMy4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==