From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [PATCH v4 17/28] x86/vvtd: save and restore emulated VT-d Date: Fri, 23 Feb 2018 13:22:23 +0800 Message-ID: <20180223052223.GB162485@skl-4s-chao.sh.intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> <1510899755-40237-18-git-send-email-chao.gao@intel.com> <20180212144912.jywfmqlowmkrsmeq@MacBook-Pro-de-Roger.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180212144912.jywfmqlowmkrsmeq@MacBook-Pro-de-Roger.local> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: Lan Tianyu , Kevin Tian , Stefano Stabellini , Wei Liu , George Dunlap , Ian Jackson , Tim Deegan , xen-devel@lists.xen.org, Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBGZWIgMTIsIDIwMTggYXQgMDI6NDk6MTJQTSArMDAwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPk9uIEZyaSwgTm92IDE3LCAyMDE3IGF0IDAyOjIyOjI0UE0gKzA4MDAsIENoYW8g R2FvIHdyb3RlOgo+PiBQcm92aWRlIGEgc2F2ZS1yZXN0b3JlIHBhaXIgdG8gc2F2ZS9yZXN0b3Jl IHJlZ2lzdGVycyBhbmQgbm9uLXJlZ2lzdGVyCj4+IHN0YXR1cy4KPj4gCj4+IFNpZ25lZC1vZmYt Ynk6IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IExhbiBU aWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29tPgo+PiAtLS0KPj4gdjM6Cj4+ICAtIHVzZSBvbmUg ZW50cnkgdG8gc2F2ZSBib3RoIHZ2dGQgcmVnaXN0ZXJzIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUK Pj4gIHN0YXRlCj4+IC0tLQo+PiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z2dGQuYyAg ICAgfCA1NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4+ICB4ZW4vaW5jbHVk ZS9wdWJsaWMvYXJjaC14ODYvaHZtL3NhdmUuaCB8IDE4ICsrKysrKysrKystCj4+ICAyIGZpbGVz IGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvdnZ0ZC5jCj4+IGluZGV4IDgxMTcwZWMuLmY2YmRlNjkgMTAwNjQ0Cj4+ IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMKPj4gKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z2dGQuYwo+PiBAQCAtMjcsOCArMjcsMTAgQEAKPj4gICNp bmNsdWRlIDxhc20vZXZlbnQuaD4KPj4gICNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgo+PiAgI2lu Y2x1ZGUgPGFzbS9odm0vZG9tYWluLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL2h2bS9zYXZlLmg+Cj4+ ICAjaW5jbHVkZSA8YXNtL2h2bS9zdXBwb3J0Lmg+Cj4+ICAjaW5jbHVkZSA8YXNtL3AybS5oPgo+ PiArI2luY2x1ZGUgPHB1YmxpYy9odm0vc2F2ZS5oPgo+PiAgCj4+ICAjaW5jbHVkZSAiaW9tbXUu aCIKPj4gICNpbmNsdWRlICJ2dGQuaCIKPj4gQEAgLTM4LDIwICs0MCw2IEBACj4+ICAKPj4gICNk ZWZpbmUgVlZURF9GUkNEX05VTSAgIDFVTEwKPj4gICNkZWZpbmUgVlZURF9GUkNEX1NUQVJUIChE TUFSX0lSVEFfUkVHICsgOCkKPj4gLSNkZWZpbmUgVlZURF9GUkNEX0VORCAgIChWVlREX0ZSQ0Rf U1RBUlQgKyBWVlREX0ZSQ0RfTlVNICogMTYpCj4+IC0jZGVmaW5lIFZWVERfTUFYX09GRlNFVCBW VlREX0ZSQ0RfRU5ECj4+IC0KPj4gLXN0cnVjdCBodm1faHdfdnZ0ZCB7Cj4+IC0gICAgYm9vbCBl aW1fZW5hYmxlZDsKPj4gLSAgICBib29sIGludHJlbWFwX2VuYWJsZWQ7Cj4+IC0gICAgdWludDMy X3QgZmF1bHRfaW5kZXg7Cj4+IC0KPj4gLSAgICAvKiBJbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxl IGJhc2UgZ2ZuIGFuZCB0aGUgbWF4IG9mIGVudHJpZXMgKi8KPj4gLSAgICB1aW50MTZfdCBpcnRf bWF4X2VudHJ5Owo+PiAtICAgIGdmbl90IGlydDsKPgo+WW91IGFyZSBjaGFuZ2luZyBnZm5fdCB0 byB1aW50NjRfdCwgaXMgZ2ZuX3Qgbm90IHdvcmtpbmcgd2l0aCB0aGUKPm1pZ3JhdGlvbiBzdHJl YW0/CgpJbiB4ZW4vaW5jbHVkZS9wdWJsaWMvc2F2ZS5oLCB0aGVyZSBpcyBhIGNvbW1lbnQgYXJv dW5kIGxpbmUgMzI6CiAqIFN0cnVjdHVyZXMgaW4gdGhpcyBoZWFkZXIgKm11c3QqIGhhdmUgdGhl IHNhbWUgbGF5b3V0IGluIDMyYml0IAogKiBhbmQgNjRiaXQgZW52aXJvbm1lbnRzOiB0aGlzIG1l YW5zIHRoYXQgYWxsIGZpZWxkcyBtdXN0IGJlIGV4cGxpY2l0bHkgCiAqIHNpemVkIHR5cGVzIGFu ZCBhbGlnbmVkIHRvIHRoZWlyIHNpemVzLCBhbmQgdGhlIHN0cnVjdHMgbXVzdCBiZSAKICogYSBt dWx0aXBsZSBvZiBlaWdodCBieXRlcyBsb25nLgoKVGhhdCdzIHdoeSBJIGNoYW5nZSBib29sIHRv IHVpbnQzMl90IGFuZCBnZm5fdCB0byB1aW50NjRfdC4KCj4KPkFsc28gSSB0aGluayB0aGlzIGR1 cGxpY2F0aW9uIG9mIGZpZWxkcyAoaGF2aW5nIGFsbCByZWdpc3RlcnMgaW4KPidyZWdzJyBhbmQg c29tZSBjYWNoZWQgaW4gbWlzY2VsbGFuZW91cyB0b3AgbGV2ZWwgZmllbGRzIGlzIG5vdCBhIGdv b2QKPmFwcHJvYWNoLgoKWWVzLiBJIHRoaW5rIGludHJlbWFwX2VuYWJsZWQgY2FuIGJlIHJlbW92 ZWQuIE90aGVycyAoaS5lLgplaW1fZW5hYmxlLCBpcnRfbWF4X2VudHJ5LCBpcnQpIGNhbm5vdCBi ZSByZW1vdmVkLiBCZWNhdXNlCmd1ZXN0IG1heSB1cGRhdGUgSVJUQSB3aGVuIGludGVycnVwdCBy ZW1hcHBpbmcgaXMgZW5hYmxlZC4KSGVyZSBtZWFucyBndWVzdCB3YW50cyB0byB1c2UgVEFCTEUg QiB0byByZXBsYWNlIGN1cnJlbnQgVEFCTEUgQS4KVG8gZmluaXNoIHRoaXMgcmVwbGFjaW5nLCBn dWVzdCBzaG91bGQgcHJvZ3JhbSB0YWJsZSBCJ3MgYmFzZSBhZGRyZXNzLAp0aGUgbnVtYmVyIG9m IGVudHJpZXMgYW5kIGVpbSBpcyBlbmFibGVkIG9yIG5vdCB0byBJUlRBIGFuZCB0aGVuIHNldApH Q01EIHdpdGggU0lSVFAgc2V0LiBJZiBzYXZpbmcgYW5kIHJlc3RvcmluZyBoYXBwZW4gYmV0d2Vl biBhYm92ZSB0d28Kc3RlcHMsIHdlIGNhbiByZWNvdmVyIFRBQkxFIEEncyBiYXNlIGFkZHJlc3Mg YW5kIG90aGVyIGluZm9ybWF0aW9uLgoKPgo+PiAtCj4+IC0gICAgdWludDMyX3QgcmVnc1tWVlRE X01BWF9PRkZTRVQvc2l6ZW9mKHVpbnQzMl90KV07Cj4+IC19Owo+PiAgCj4+ICBzdHJ1Y3QgdnZ0 ZCB7Cj4+ICAgICAgLyogQmFzZSBhZGRyZXNzIG9mIHJlbWFwcGluZyBoYXJkd2FyZSByZWdpc3Rl ci1zZXQgKi8KPj4gQEAgLTc3Niw3ICs3NjQsNyBAQCBzdGF0aWMgdm9pZCB3cml0ZV9nY21kX3Np cnRwKHN0cnVjdCB2dnRkICp2dnRkLCB1aW50MzJfdCB2YWwpCj4+ICAgICAgaWYgKCB2dnRkLT5o dy5pbnRyZW1hcF9lbmFibGVkICkKPj4gICAgICAgICAgdnZ0ZF9pbmZvKCJVcGRhdGUgSW50ZXJy dXB0IFJlbWFwcGluZyBUYWJsZSB3aGVuIGFjdGl2ZVxuIik7Cj4+ICAKPj4gLSAgICBpZiAoIGdm bl94KHZ2dGQtPmh3LmlydCkgIT0gUEZOX0RPV04oRE1BX0lSVEFfQUREUihpcnRhKSkgfHwKPj4g KyAgICBpZiAoIHZ2dGQtPmh3LmlydCAhPSBQRk5fRE9XTihETUFfSVJUQV9BRERSKGlydGEpKSB8 fAo+PiAgICAgICAgICAgdnZ0ZC0+aHcuaXJ0X21heF9lbnRyeSAhPSBETUFfSVJUQV9TSVpFKGly dGEpICkKPj4gICAgICB7Cj4+ICAgICAgICAgIGlmICggdnZ0ZC0+aXJ0X2Jhc2UgKQo+PiBAQCAt Nzg2LDE0ICs3NzQsMTQgQEAgc3RhdGljIHZvaWQgd3JpdGVfZ2NtZF9zaXJ0cChzdHJ1Y3QgdnZ0 ZCAqdnZ0ZCwgdWludDMyX3QgdmFsKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZihzdHJ1Y3QgaXJlbWFwX2VudHJ5KSkpOwo+PiAgICAgICAgICAgICAgdnZ0 ZC0+aXJ0X2Jhc2UgPSBOVUxMOwo+PiAgICAgICAgICB9Cj4+IC0gICAgICAgIHZ2dGQtPmh3Lmly dCA9IF9nZm4oUEZOX0RPV04oRE1BX0lSVEFfQUREUihpcnRhKSkpOwo+PiArICAgICAgICB2dnRk LT5ody5pcnQgPSBQRk5fRE9XTihETUFfSVJUQV9BRERSKGlydGEpKTsKPj4gICAgICAgICAgdnZ0 ZC0+aHcuaXJ0X21heF9lbnRyeSA9IERNQV9JUlRBX1NJWkUoaXJ0YSk7Cj4+ICAgICAgICAgIHZ2 dGQtPmh3LmVpbV9lbmFibGVkID0gISEoaXJ0YSAmIElSVEFfRUlNRSk7Cj4+ICAgICAgICAgIHZ2 dGRfaW5mbygiVXBkYXRlIElSIGluZm8gKGFkZHI9JWx4IGVpbT0lZCBzaXplPSVkKVxuIiwKPj4g LSAgICAgICAgICAgICAgICAgIGdmbl94KHZ2dGQtPmh3LmlydCksIHZ2dGQtPmh3LmVpbV9lbmFi bGVkLAo+PiArICAgICAgICAgICAgICAgICAgdnZ0ZC0+aHcuaXJ0LCB2dnRkLT5ody5laW1fZW5h YmxlZCwKPj4gICAgICAgICAgICAgICAgICAgIHZ2dGQtPmh3LmlydF9tYXhfZW50cnkpOwo+PiAg Cj4+IC0gICAgICAgIHZ2dGQtPmlydF9iYXNlID0gbWFwX2d1ZXN0X3BhZ2VzKHZ2dGQtPmRvbWFp biwgZ2ZuX3godnZ0ZC0+aHcuaXJ0KSwKPj4gKyAgICAgICAgdnZ0ZC0+aXJ0X2Jhc2UgPSBtYXBf Z3Vlc3RfcGFnZXModnZ0ZC0+ZG9tYWluLCB2dnRkLT5ody5pcnQsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9VUCh2dnRkLT5ody5pcnRfbWF4X2VudHJ5 ICoKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZihzdHJ1Y3QgaXJlbWFwX2VudHJ5KSkpOwo+PiAgICAgIH0KPj4gQEAgLTExMzgsNiArMTEy NiwzOSBAQCBzdGF0aWMgYm9vbCB2dnRkX2lzX3JlbWFwcGluZyhjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkLAo+PiAgICAgIHJldHVybiAhaXJxX3JlbWFwcGluZ19yZXF1ZXN0X2luZGV4KGlycSwgJmlk eCk7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyBpbnQgdnZ0ZF9sb2FkKHN0cnVjdCBkb21haW4gKmQs IGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+PiArewo+PiArICAgIHN0cnVjdCB2dnRkICp2dnRk ID0gZG9tYWluX3Z2dGQoZCk7Cj4+ICsgICAgdWludDY0X3QgaXFhOwo+PiArCj4+ICsgICAgaWYg KCAhdnZ0ZCApCj4+ICsgICAgICAgIHJldHVybiAtRU5PREVWOwo+PiArCj4+ICsgICAgaWYgKCBo dm1fbG9hZF9lbnRyeShWVlRELCBoLCAmdnZ0ZC0+aHcpICkKPj4gKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4+ICsKPj4gKyAgICBpcWEgPSB2dnRkX2dldF9yZWdfcXVhZCh2dnRkLCBETUFSX0lR QV9SRUcpOwo+PiArICAgIHZ2dGQtPmlydF9iYXNlID0gbWFwX2d1ZXN0X3BhZ2VzKHZ2dGQtPmRv bWFpbiwgdnZ0ZC0+aHcuaXJ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBGTl9VUCh2dnRkLT5ody5pcnRfbWF4X2VudHJ5ICoKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpcmVtYXBfZW50cnkpKSk7 Cj4+ICsgICAgdnZ0ZC0+aW52X3F1ZXVlX2Jhc2UgPSBtYXBfZ3Vlc3RfcGFnZXModnZ0ZC0+ZG9t YWluLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9E T1dOKERNQV9JUUFfQUREUihpcWEpKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxIDw8IERNQV9JUUFfUVMoaXFhKSk7Cj4KPldoeSBhcmUgeW91IHVuY29u ZGl0aW9uYWxseSBtYXBwaW5nIHRob3NlIHBhZ2VzPyBTaG91bGRuJ3QgeW91IGNoZWNrCj50aGF0 IHRoZSByZWxldmFudCBmZWF0dXJlcyBhcmUgZW5hYmxlZD8KPgo+Qm90aCBjb3VsZCBiZSAwIG9y IHNpbXBseSBwb2ludCB0byBnYXJiYWdlLgoKV2lsbCBkbyBzb21lIGNoZWNrcy4KCj4KPj4gKyAg ICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCB2dnRkX3NhdmUoc3RydWN0IGRv bWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCj4+ICt7Cj4+ICsgICAgc3RydWN0IHZ2 dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZChkKTsKPj4gKwo+PiArICAgIGlmICggIXZ2dGQgKQo+PiAr ICAgICAgICByZXR1cm4gMDsKPj4gKwo+PiArICAgIHJldHVybiBodm1fc2F2ZV9lbnRyeShWVlRE LCAwLCBoLCAmdnZ0ZC0+aHcpOwo+PiArfQo+PiArCj4+ICtIVk1fUkVHSVNURVJfU0FWRV9SRVNU T1JFKFZWVEQsIHZ2dGRfc2F2ZSwgdnZ0ZF9sb2FkLCAxLCBIVk1TUl9QRVJfRE9NKTsKPj4gKwo+ PiAgc3RhdGljIHZvaWQgdnZ0ZF9yZXNldChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCkKPj4gIHsKPj4gICAg ICB1aW50NjRfdCBjYXAgPSBjYXBfc2V0X251bV9mYXVsdF9yZWdzKFZWVERfRlJDRF9OVU0pCj4+ IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvaHZtL3NhdmUuaCBiL3hl bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9odm0vc2F2ZS5oCj4+IGluZGV4IGZkN2JmM2YuLjI0 YTUxM2IgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9odm0vc2F2 ZS5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9odm0vc2F2ZS5oCj4+IEBA IC02MzksMTAgKzYzOSwyNiBAQCBzdHJ1Y3QgaHZtX21zciB7Cj4+ICAKPj4gICNkZWZpbmUgQ1BV X01TUl9DT0RFICAyMAo+PiAgCj4+ICsjZGVmaW5lIFZWVERfTUFYX09GRlNFVCAweGQwCj4KPllv dSB1c2VkIHRvIGhhdmUgc29tZSBraW5kIG9mIGZvcm11bGEgdG8gY2FsY3VsYXRlIFZWVERfTUFY X09GRlNFVCwKPnlldCBoZXJlIHRoZSB2YWx1ZSBpcyBqdXN0IGhhcmRjb2RlZC4gQW55IHJlYXNv biBmb3IgdGhpcz8KClRoZSBmb3JtdWxhIHVzZXMgRE1BUl9JUlRBX1JFRywgd2hpY2ggaXMgZGVm aW5lZCBpbiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaC4KSXQgY2Fubm90IGJl IGluY2x1ZGVkIGJ5IHRoaXMgZmlsZS4KCj4KPj4gK3N0cnVjdCBodm1faHdfdnZ0ZAo+PiArewo+ PiArICAgIHVpbnQzMl90IGVpbV9lbmFibGVkIDogMSwKPj4gKyAgICAgICAgICAgICBpbnRyZW1h cF9lbmFibGVkIDogMTsKPj4gKyAgICB1aW50MzJfdCBmYXVsdF9pbmRleDsKPj4gKwo+PiArICAg IC8qIEludGVycnVwdCByZW1hcHBpbmcgdGFibGUgYmFzZSBnZm4gYW5kIHRoZSBtYXggb2YgZW50 cmllcyAqLwo+PiArICAgIHVpbnQzMl90IGlydF9tYXhfZW50cnk7Cj4+ICsgICAgdWludDY0X3Qg aXJ0Owo+PiArCj4+ICsgICAgdWludDMyX3QgcmVnc1tWVlREX01BWF9PRkZTRVQvc2l6ZW9mKHVp bnQzMl90KV07Cj4+ICt9Owo+PiArCj4+ICtERUNMQVJFX0hWTV9TQVZFX1RZUEUoVlZURCwgMjEs IHN0cnVjdCBodm1faHdfdnZ0ZCk7Cj4KPkFkZGluZyBuZXcgZmllbGRzIHRvIHRoaXMgc3RydWN0 IGluIGEgbWlncmF0aW9uIGNvbXBhdGlibGUgd2F5IGlzCj5nb2luZyB0byBiZSBhIFBJVEEsIGJ1 dCB0aGVyZSdzIG5vIGVhc3kgc29sdXRpb24gdG8gdGhpcyBJJ20gYWZyYWlkLi4uCgpXaGF0IGRv IHlvdSBtZWFuIGJ5ICJtaWdyYXRpb24gY29tcGF0aWJsZSI/IERvIHlvdSBtZWFuIG1pZ3JhdGlu ZyBhIGh2bQpndWVzdCB3aXRoIHZpb21tdSBiZXR3ZWVuIGRpZmZlcmVudCBYZW4gdmVyc2lvbnM/ IENvdWxkIGl0IGJlIHNvbHZlZCBieQpsZWF2aW5nIHNvbWUgcGFkZGluZyBmaWVsZHMgaGVyZT8K ClRoYW5rcwpDaGFvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs