From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [V5] x86/xsaves: fix overwriting between non-lazy/lazy xsaves Date: Tue, 22 Mar 2016 08:34:33 -0600 Message-ID: <56F1660902000078000DF38B@prv-mh.provo.novell.com> References: <1458270080-19493-1-git-send-email-shuai.ruan@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458270080-19493-1-git-send-email-shuai.ruan@linux.intel.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Shuai Ruan Cc: andrew.cooper3@citrix.com, keir@xen.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDE4LjAzLjE2IGF0IDA0OjAxLCA8c2h1YWkucnVhbkBsaW51eC5pbnRlbC5jb20+IHdy b3RlOgo+IHY1OiBBZGRyZXNzIGNvbW1lbnRzIGZyb20gSmFuCj4gMS4gQWRkIFhTVEFURV9YU0FW RVNfT05MWSBhbmQgdXNpbmcgeHNhdmVzIGRlcGVuZCBvbiB3aGV0aGVyIHRoaXMgYml0cyBhcmUK PiAgICBzZXQgaW4geGNyMF9hY2N1bQo+IDIuIENoYW5nZSBjb21wcmVzcyBsb2dpYyBpbiBjb21w cmVzc194c2F2ZV9zdGF0ZXMoKSBkZXBlbmQgb24gCj4gICAgISh2LT5hcmNoLnhjcjBfYWNjdW0g JiBYU1RBVEVfWFNBVkVTX09OTFkpICYmICF4c2F2ZV9hcmVhX2NvbXByZXNzZWQoc3JjKSkuCj4g My4gWFNUQVRFX0NPTVBBQ1RJT05fRU5BQkxFRCBvbmx5IHNldCBpbiB4cnN0b3IoKS4KPiA0LiBS ZWJhc2UgdGhlIGNvZGUgb24KPiAgICBbVjRdIHg4Ni94c2F2ZXM6IGNhbGN1bGF0ZSB0aGUgeHN0 YXRlX2NvbXBfb2Zmc2V0cyBiYXNlIG9uIHhzdGF0ZV9idgo+ICAgIChhbHJlYWR5IHNlbnQgb3V0 KSBGb3IgdGhleSBib3RoIGNoYW5nZSBzYW1lIGNvZGUuIAo+ICAgIChJIGFtIG5vdCBzdXJlIHdo ZXRoZXIgdGhpcyByZWJhc2UgaXMgb2sgb3Igbm90KS4KClN1Y2ggcmUtYmFzaW5nIGlzIG9rYXks IGJ1dCB0aGUgZGVwZW5kZW5jeSBvbiB0aGUgb3RoZXIgcGF0Y2gKc2hvdWxkbid0IGdldCBoaWRk ZW4gaW4gdGhlIHJldmlzaW9uIGxvZy4gQmVzdCB3b3VsZCByZWFsbHkgYmUgaWYgdGhpcwp3YXMg YSBzZXJpZXMgKGNvbnNpc3Rpbmcgb2YgYm90aCBwYXRjaGVzKS4KCj4gQEAgLTIyMiwyMiArMjIy LDIxIEBAIHZvaWQgY29tcHJlc3NfeHNhdmVfc3RhdGVzKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCB2 b2lkICpzcmMsIHVuc2lnbmVkIGludCBzaXplKQo+ICAgICAgdTY0IHhzdGF0ZV9idiA9ICgoY29u c3Qgc3RydWN0IHhzYXZlX3N0cnVjdCAqKXNyYyktPnhzYXZlX2hkci54c3RhdGVfYnY7Cj4gICAg ICB1NjQgdmFsaWQ7Cj4gIAo+IC0gICAgaWYgKCAhY3B1X2hhc194c2F2ZXMgJiYgIWNwdV9oYXNf eHNhdmVjICkKPiArICAgIGlmICggISh2LT5hcmNoLnhjcjBfYWNjdW0gJiBYU1RBVEVfWFNBVkVT X09OTFkpICYmCj4gKyAgICAgICAgICF4c2F2ZV9hcmVhX2NvbXByZXNzZWQoc3JjKSApCj4gICAg ICB7Cj4gICAgICAgICAgbWVtY3B5KHhzYXZlLCBzcmMsIHNpemUpOwo+ICAgICAgICAgIHJldHVy bjsKPiAgICAgIH0KPiAgCj4gLSAgICBBU1NFUlQoIXhzYXZlX2FyZWFfY29tcHJlc3NlZChzcmMp KTsKClRoaXMgaXMgYm9ndXM6IFRoZSBmdW5jdGlvbiBoZXJlIGdldHMgY2FsbGVkIG9ubHkgYWZ0 ZXIKdmFsaWRhdGVfeHN0YXRlKCkgYWxyZWFkeSBzdWNjZWVkZWQuIEhlbmNlIHRoZSBBU1NFUlQo KQpzaG91bGQgaW1vIHNpbXBseSBnZXQgbW92ZWQgYWhlYWQgb2YgdGhlIGlmKCkuCgo+ICAgICAg LyoKPiAgICAgICAqIENvcHkgbGVnYWN5IFhTQVZFIGFyZWEsIHRvIGF2b2lkIGNvbXBsaWNhdGlv bnMgd2l0aCBDUFVJRAo+ICAgICAgICogbGVhdmVzIDAgYW5kIDEgaW4gdGhlIGxvb3AgYmVsb3cu Cj4gICAgICAgKi8KPiAgICAgIG1lbWNweSh4c2F2ZSwgc3JjLCBGWFNBVkVfU0laRSk7Cj4gIAo+ IC0gICAgLyogU2V0IFhTVEFURV9CViBhbmQgWENPTVBfQlYuICAqLwo+ICsgICAgLyogU2V0IFhT VEFURV9CVi4gICovCj4gICAgICB4c2F2ZS0+eHNhdmVfaGRyLnhzdGF0ZV9idiA9IHhzdGF0ZV9i djsKPiAtICAgIHhzYXZlLT54c2F2ZV9oZHIueGNvbXBfYnYgPSB2LT5hcmNoLnhjcjBfYWNjdW0g fCBYU1RBVEVfQ09NUEFDVElPTl9FTkFCTEVEOwo+ICAgICAgc2V0dXBfeHN0YXRlX2NvbXAoeHN0 YXRlX2NvbXBfb2Zmc2V0cywgeHN0YXRlX2J2KTsKCkkgc2VlIHlvdSBzZXQgeGNvbXBfYnYgKGFu ZCBoZW5jZSB0aGUgY29tcGFjdGlvbiBiaXQpIGluIHhyc3RvcigpCm5vdywgYnV0IGFmYWljdCB0 aGF0IGRvZXNuJ3QgYWxsb3cgeW91IHRvIGNvbXBsZXRlbHkgZHJvcCBpbml0aWFsaXppbmcKdGhl IGZpZWxkIGhlcmUsIGFzIHRoZSBjb2RlIHRoZXJlIGxvb2tzIGF0IHRoZSBjb21wYWN0aW9uIGJp dC4KCj4gQEAgLTI2NywzMSArMjY2LDM1IEBAIHZvaWQgeHNhdmUoc3RydWN0IHZjcHUgKnYsIHVp bnQ2NF90IG1hc2spCj4gICAgICB1aW50MzJfdCBobWFzayA9IG1hc2sgPj4gMzI7Cj4gICAgICB1 aW50MzJfdCBsbWFzayA9IG1hc2s7Cj4gICAgICB1bnNpZ25lZCBpbnQgZmlwX3dpZHRoID0gdi0+ ZG9tYWluLT5hcmNoLng4N19maXBfd2lkdGg7Cj4gLSNkZWZpbmUgWFNBVkUocGZ4KSBcCj4gLSAg ICAgICAgYWx0ZXJuYXRpdmVfaW9fMygiLmJ5dGUgIiBwZnggIjB4MGYsMHhhZSwweDI3XG4iLCAv KiB4c2F2ZSAqLyBcCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAiLmJ5dGUgIiBwZnggIjB4 MGYsMHhhZSwweDM3XG4iLCAvKiB4c2F2ZW9wdCAqLyBcCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICBYODZfRkVBVFVSRV9YU0FWRU9QVCwgXAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg Ii5ieXRlICIgcGZ4ICIweDBmLDB4YzcsMHgyN1xuIiwgLyogeHNhdmVjICovIFwKPiAtICAgICAg ICAgICAgICAgICAgICAgICAgIFg4Nl9GRUFUVVJFX1hTQVZFQywgXAo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgIi5ieXRlICIgcGZ4ICIweDBmLDB4YzcsMHgyZlxuIiwgLyogeHNhdmVzICov IFwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIFg4Nl9GRUFUVVJFX1hTQVZFUywgXAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgIj1tIiAoKnB0ciksIFwKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICJhIiAobG1hc2spLCAiZCIgKGhtYXNrKSwgIkQiIChwdHIpKQo+ICsjZGVmaW5l IFhTQVZFKHBmeCwgeHNhdmVfaW5zKSBcCj4gKyAgICAgICAgYXNtIHZvbGF0aWxlICggIi5ieXRl ICIgcGZ4IHhzYXZlX2lucyBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgOiAiPW0iICgqcHRy KSBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgOiAiYSIgKGxtYXNrKSwgImQiIChobWFzayks ICJEIiAocHRyKSApCj4gIAo+ICAgICAgaWYgKCBmaXBfd2lkdGggPT0gOCB8fCAhKG1hc2sgJiBY U1RBVEVfRlApICkKPiAgICAgIHsKPiAtICAgICAgICBYU0FWRSgiMHg0OCwiKTsKPiArICAgICAg ICBpZiAoIHYtPmFyY2gueGNyMF9hY2N1bSAmIFhTVEFURV9YU0FWRVNfT05MWSApCj4gKyAgICAg ICAgICAgIFhTQVZFKCIweDQ4LCIsICIweDBmLDB4YzcsMHgyZiIpOyAvKiB4c2F2ZXMgKi8KPiAr ICAgICAgICBlbHNlIGlmICggY3B1X2hhc194c2F2ZW9wdCApCj4gKyAgICAgICAgICAgIFhTQVZF KCIweDQ4LCIsICIweDBmLDB4YWUsMHgzNyIpOyAvKiB4c2F2ZW9wdCAqLwo+ICsgICAgICAgIGVs c2UKPiArICAgICAgICAgICAgWFNBVkUoIjB4NDgsIiwgIjB4MGYsMHhhZSwweDI3Iik7IC8qIHhz YXZlICovCgpUaGUgbGF0dGVyIHR3byBzaG91bGQgc3RpbGwgdXNlIGFsdGVybmF0aXZlIGluc24g cGF0Y2hpbmcuCgo+ICAgICAgfQo+ICAgICAgZWxzZSBpZiAoIGZpcF93aWR0aCA9PSA0ICkKPiAg ICAgIHsKPiAtICAgICAgICBYU0FWRSgiIik7Cj4gKyAgICAgICAgaWYgKCB2LT5hcmNoLnhjcjBf YWNjdW0gJiBYU1RBVEVfWFNBVkVTX09OTFkgKQo+ICsgICAgICAgICAgICBYU0FWRSgiIiwgIjB4 MGYsMHhjNywweDJmIik7Cj4gKyAgICAgICAgZWxzZSBpZiAoIGNwdV9oYXNfeHNhdmVvcHQgKQo+ ICsgICAgICAgICAgICBYU0FWRSgiIiwgIjB4MGYsMHhhZSwweDM3Iik7Cj4gKyAgICAgICAgZWxz ZQo+ICsgICAgICAgICAgICBYU0FWRSgiIiwgIjB4MGYsMHhhZSwweDI3Iik7CgpBbmQgdGhpcyBs b2dpYyBiZWluZyByZXBlYXRlZCBoZXJlIChhbmQgYW5vdGhlciB0aW1lIGJlbG93KSBzaG91bGQK aGF2ZSBtYWRlIG9idmlvdXMgdGhhdCB5b3Ugd2FudCB0byBsZWF2ZSB0aGUgY29kZSBoZXJlIHVu dG91Y2hlZAphbmQgZG8gYWxsIG9mIHlvdXIgY2hhbmdlcyBqdXN0IHRvIHRoZSBYU0FWRSgpIG1h Y3JvIGRlZmluaXRpb24uCgo+IEBAIC0zNzgsMjUgKzM4Nyw0MiBAQCB2b2lkIHhyc3RvcihzdHJ1 Y3QgdmNwdSAqdiwgdWludDY0X3QgbWFzaykKPiAgICAgICAgICBzd2l0Y2ggKCBfX2J1aWx0aW5f ZXhwZWN0KHB0ci0+ZnB1X3NzZS54W0ZQVV9XT1JEX1NJWkVfT0ZGU0VUXSwgOCkgKQo+ICAgICAg ICAgIHsKPiAgICAgICAgICAgICAgQlVJTERfQlVHX09OKHNpemVvZihmYXVsdHMpICE9IDQpOyAv KiBDbGFuZyBkb2Vzbid0IHN1cHBvcnQgJXogaW4gYXNtLiAqLwo+IC0jZGVmaW5lIFhSU1RPUihw ZngpIFwKPiAtICAgICAgICBhbHRlcm5hdGl2ZV9pbygiMTogLmJ5dGUgIiBwZnggIjB4MGYsMHhh ZSwweDJmXG4iIFwKPiArI2RlZmluZSBYUlNUT1IocGZ4LCB4cnN0b3JfaW5zKSBcCj4gKyAgICAg ICAgYXNtIHZvbGF0aWxlICggIjE6IC5ieXRlICIgcGZ4IHhyc3Rvcl9pbnMiXG4iIFwKPiAgICAg ICAgICAgICAgICAgICAgICAgICAiMzpcbiIgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICIg ICAuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iIFwKPiAgICAgICAgICAgICAgICAgICAgICAgICAi MjogaW5jbCAlW2ZhdWx0c11cbiIgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICIgICBqbXAg M2JcbiIgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICIgICAucHJldmlvdXNcbiIgXAo+IC0g ICAgICAgICAgICAgICAgICAgICAgIF9BU01fRVhUQUJMRSgxYiwgMmIpLCBcCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgIi5ieXRlICIgcGZ4ICIweDBmLDB4YzcsMHgxZlxuIiwgXAo+IC0gICAg ICAgICAgICAgICAgICAgICAgIFg4Nl9GRUFUVVJFX1hTQVZFUywgXAo+IC0gICAgICAgICAgICAg ICAgICAgICAgIEFTTV9PVVRQVVQyKFttZW1dICIrbSIgKCpwdHIpLCBbZmF1bHRzXSAiK2ciIChm YXVsdHMpKSwgXAo+IC0gICAgICAgICAgICAgICAgICAgICAgIFtsbWFza10gImEiIChsbWFzayks IFtobWFza10gImQiIChobWFzayksIFwKPiAtICAgICAgICAgICAgICAgICAgICAgICBbcHRyXSAi RCIgKHB0cikpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgX0FTTV9FWFRBQkxFKDFiLCAyYikg XAo+ICsgICAgICAgICAgICAgICAgICAgICAgIDogW21lbV0gIittIiAoKnB0ciksIFtmYXVsdHNd ICIrZyIgKGZhdWx0cykgXAo+ICsgICAgICAgICAgICAgICAgICAgICAgIDogW2xtYXNrXSAiYSIg KGxtYXNrKSwgW2htYXNrXSAiZCIgKGhtYXNrKSwgXAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgW3B0cl0gIkQiIChwdHIpICkKPiAgCj4gICAgICAgICAgZGVmYXVsdDoKPiAtICAgICAgICAg ICAgWFJTVE9SKCIweDQ4LCIpOwo+ICsgICAgICAgICAgICBpZiAoIHYtPmFyY2gueGNyMF9hY2N1 bSAmIFhTVEFURV9YU0FWRVNfT05MWSApCj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAg ICAgIGlmICggdW5saWtlbHkoIShwdHItPnhzYXZlX2hkci54Y29tcF9idgo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICYgWFNUQVRFX0NPTVBBQ1RJT05fRU5BQkxFRCkpICkKPiAr ICAgICAgICAgICAgICAgICAgICBwdHItPnhzYXZlX2hkci54Y29tcF9idiA9IHB0ci0+eHNhdmVf aGRyLnhzdGF0ZV9idgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBYU1RBVEVfQ09NUEFDVElPTl9FTkFCTEVEOwo+ICsKPiArICAgICAgICAgICAgICAg IFhSU1RPUigiMHg0OCwiLCIweDBmLDB4YzcsMHgxZiIpOyAvKiB4cnN0b3JzICovCj4gKyAgICAg ICAgICAgIH0KPiArICAgICAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICAgICAgWFJTVE9SKCIw eDQ4LCIsIjB4MGYsMHhhZSwweDJmIik7IC8qIHhyc3RvciAqLwoKQXQgdGhpcyBwb2ludCwgd2hh dCBndWFyYW50ZWVzIHRoYXQgeGNvbXBfYnYgaXMgemVybywgbm8gbWF0dGVyCndoZXJlIHRoZSBz dGF0ZSB0byBiZSBsb2FkZWQgb3JpZ2luYXRlcyBmcm9tPyBJIHRoaW5rIGF0IGxlYXN0IGluCmFy Y2hfc2V0X2luZm9fZ3Vlc3QoKSwgaHZtX2xvYWRfY3B1X2N0eHQoKSwgYW5kCmh2bV92Y3B1X3Jl c2V0X3N0YXRlKCkgeW91IHdlbnQgdG9vIGZhciBkZWxldGluZyBjb2RlLCBhbmQgeW91CnJlYWxs eSBuZWVkIHRvIGtlZXAgdGhlIHN0b3Jpbmcgb2YgemVybyB0aGVyZS4gRGlkIHlvdSBkcmF3LCBq dXN0CmZvciB5b3Vyc2VsZiwgbWVudGFsbHkgb3Igb24gYSBzaGVldCBvZiBwYXBlciwgYSBkaWFn cmFtIGlsbHVzdHJhdGluZwp0aGUgdmFyaW91cyBzdGF0ZSB0cmFuc2l0aW9ucz8KCj4gICAgICAg ICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgNDogY2FzZSAyOgo+IC0gICAgICAgICAgICBY UlNUT1IoIiIpOwo+ICsgICAgICAgICAgICBpZiAoIHYtPmFyY2gueGNyMF9hY2N1bSAmIFhTVEFU RV9YU0FWRVNfT05MWSApCj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIGlmICgg dW5saWtlbHkoIShwdHItPnhzYXZlX2hkci54Y29tcF9idgo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICYgWFNUQVRFX0NPTVBBQ1RJT05fRU5BQkxFRCkpICkKPiArICAgICAgICAg ICAgICAgICAgICBwdHItPnhzYXZlX2hkci54Y29tcF9idiA9IHB0ci0+eHNhdmVfaGRyLnhzdGF0 ZV9idgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBY U1RBVEVfQ09NUEFDVElPTl9FTkFCTEVEOwo+ICsgICAgICAgICAgICAgICAgWFJTVE9SKCIiLCIw eDBmLDB4YzcsMHgxZiIpOwo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIGVsc2UKPiAr ICAgICAgICAgICAgICAgIFhSU1RPUigiIiwiMHgwZiwweGFlLDB4MmYiKTsKPiAgICAgICAgICAg ICAgYnJlYWs7CgpTaW5jZSBhZ2FpbiB5b3UgcmVwZWF0IHRoZSBzYW1lIGxvZ2ljIHR3aWNlLCB0 aGlzIHNob3VsZCBhZ2FpbiBoYXZlCmJlZW4gYSBzaWduYWwgdGhhdCBhbGwgeW91ciBjaGFuZ2Vz IHNob3VsZCBnbyBpbnRvIHRoZSBYUlNUT1IoKQptYWNyby4gT3IgYWx0ZXJuYXRpdmVseSwgc2lu Y2UgdGhlIGV4Y2VwdGlvbiBmaXh1cCBhbHNvIGRpZmZlcnMsIHlvdQptYXkgd2FudCB0byBjb252 ZXJ0IHRoZSB3aG9sZSBsb2dpYyBpbnRvIGFuIFhTQVZFUyBhbmQgYW4gWFNBVkUKcGF0aC4gTXkg b25seSByZWFsbHkgc2luY2VyZSByZXF1ZXN0IGhlcmUgaXMgLSBhcyBsaXR0bGUgcmVkdW5kYW5j eSBhcwpwb3NzaWJsZSwgc2luY2UgaGF2aW5nIHRvIGNoYW5nZSB0aGUgc2FtZSB0aGluZyB0d2lj ZSBpbiBtb3JlIHRoYW4Kb25lIHBsYWNlIGlzIGFsd2F5cyBjYWxsaW5nIGZvciB0cm91YmxlLgoK SmFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=