From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Dyasli Subject: [RFC PATCH v6 13/12] microcode: add sequential application policy Date: Thu, 21 Mar 2019 12:24:46 +0000 Message-ID: <1d9184c6-38c4-dc85-9542-fb7397d6c43a@citrix.com> References: <1552291056-20286-1-git-send-email-chao.gao@intel.com> <1552291056-20286-13-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h6wke-0002Iu-Fr for xen-devel@lists.xenproject.org; Thu, 21 Mar 2019 12:24:52 +0000 In-Reply-To: <1552291056-20286-13-git-send-email-chao.gao@intel.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Chao Gao , xen-devel@lists.xenproject.org Cc: "sergey.dyasli@citrix.com >> Sergey Dyasli" , Wei Liu , Ashok Raj , Andrew Cooper , Jan Beulich , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= List-Id: xen-devel@lists.xenproject.org SGkgQ2hhbywKClVwZGF0aW5nIG1pY3JvY29kZSBpbiBwYXJhbGxlbCBieSBkZWZhdWx0IHNob3Vs ZCBiZSBmaW5lLCBidXQgSSB0aGluawp0aGVyZSBhcmUgbm8gZ3VhcmFudGVlcyB0aGF0IGEgcGFy YWxsZWwgYXBwbGljYXRpb24gd2lsbCBiZSBmaW5lIGZvcgphbGwgZnV0dXJlIG1pY3JvY29kZXMu IFRvIHJldGFpbiB0aGUgYWJpbGl0eSB0byB1cGRhdGUgbWljcm9jb2RlIG9uIGNvcmVzCnNlcXVl bnRpYWxseSBhbmQgZ2l2ZSBzb21lIGNob2ljZSB0byBhIHVzZXIsIEkgZGV2ZWxvcGVkIHRoZSBi ZWxvdyBwYXRjaC4KCkNvdWxkIHlvdSBjb25zaWRlciBpbmNsdWRpbmcgc29tZXRoaW5nIGxpa2Ug dGhpcyBpbnRvIHY3PwoKKFRoZSBwYXRjaCBpcyBmb3IgWGVuIDQuMTEgYnV0IGZvcndhcmQtcG9y dGluZyBzaG91bGQgYmUgdHJpdmlhbCkKCi0tLQogdG9vbHMvbWlzYy94ZW4tbWljcm9jb2RlLmMg ICAgICAgIHwgMTcgKysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgICAg ICAgICAgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYv cGxhdGZvcm1faHlwZXJjYWxsLmMgfCAgMyArKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vz c29yLmggICB8ICAzICsrLQogeGVuL2luY2x1ZGUvcHVibGljL3BsYXRmb3JtLmggICAgIHwgIDMg KysrCiA1IGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy94ZW4tbWljcm9jb2RlLmMgYi90b29scy9taXNjL3hlbi1t aWNyb2NvZGUuYwppbmRleCAyYzFiMmUzNjJiLi41NWQ3ZDJmNWRmIDEwMDY0NAotLS0gYS90b29s cy9taXNjL3hlbi1taWNyb2NvZGUuYworKysgYi90b29scy9taXNjL3hlbi1taWNyb2NvZGUuYwpA QCAtNDYsNyArNDYsNyBAQCB2b2lkIHNob3dfaGVscCh2b2lkKQogewogICAgIGZwcmludGYoc3Rk ZXJyLAogICAgICAgICAgICAgInhlbi1taWNyb2NvZGU6IFhlbiBtaWNyb2NvZGUgdXBkYXRpbmcg dG9vbFxuIgotICAgICAgICAgICAgIlVzYWdlOiB4ZW4tbWljcm9jb2RlIDxtaWNyb2NvZGUgYmxv Yj5cbiIpOworICAgICAgICAgICAgIlVzYWdlOiB4ZW4tbWljcm9jb2RlIDxtaWNyb2NvZGUgYmxv Yj4gPHBhcmFsbGVsfHNlcXVlbnRpYWw+XG4iKTsKCiAgICAgZ2V0X2NwdV9mYW1pbHkoY3B1aWRf ZWF4KDEpKTsKICAgICBmcHJpbnRmKHN0ZGVyciwKQEAgLTYyLDEzICs2MiwyNSBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIHN0cnVjdCB4ZW5fcGxhdGZvcm1fb3Agb3A7 CiAgICAgeGNfaW50ZXJmYWNlICp4Y2g7CiAgICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0 cnVjdCB4ZW5wZl9taWNyb2NvZGVfdXBkYXRlLCB1Yyk7CisgICAgdWludDMyX3Qgc3RyYXRlZ3k7 CgotICAgIGlmIChhcmdjIDwgMikKKyAgICBpZiAoYXJnYyA8IDMpCiAgICAgewogICAgICAgICBz aG93X2hlbHAoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQoKKyAgICBpZiAoIXN0cmNtcChh cmd2WzJdLCAicGFyYWxsZWwiKSkKKyAgICAgICAgc3RyYXRlZ3kgPSBYRU5QRl9taWNyb2NvZGVf cGFyYWxsZWw7CisgICAgZWxzZSBpZiAoIXN0cmNtcChhcmd2WzJdLCAic2VxdWVudGlhbCIpKQor ICAgICAgICBzdHJhdGVneSA9IFhFTlBGX21pY3JvY29kZV9zZXF1ZW50aWFsOworICAgIGVsc2UK KyAgICB7CisgICAgICAgIHNob3dfaGVscCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK KwogICAgIGZpbGVuYW1lID0gYXJndlsxXTsKICAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRP TkxZKTsKICAgICBpZiAoZmQgPCAwKSB7CkBAIC0xMDcsNiArMTE5LDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBvcC5jbWQgPSBYRU5QRl9taWNyb2NvZGVfdXBkYXRl OwogICAgIG9wLmludGVyZmFjZV92ZXJzaW9uID0gWEVOUEZfSU5URVJGQUNFX1ZFUlNJT047CiAg ICAgb3AudS5taWNyb2NvZGUubGVuZ3RoID0gbGVuOworICAgIG9wLnUubWljcm9jb2RlLnN0cmF0 ZWd5ID0gc3RyYXRlZ3k7CiAgICAgcmV0ID0geGNfcGxhdGZvcm1fb3AoeGNoLCAmb3ApOwogICAg IGlmICggcmV0ICkKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gdXBkYXRlIG1p Y3JvY29kZS4gKGVycjogJWQpXG4iLCByZXQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21p Y3JvY29kZS5jIGIveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCmluZGV4IDk1ZTM5YzMzYmMuLjYz YjAxYjU3MWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYworKysgYi94ZW4v YXJjaC94ODYvbWljcm9jb2RlLmMKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx4ZW4vZWFy bHljcGlvLmg+CiAjaW5jbHVkZSA8eGVuL3dhdGNoZG9nLmg+CgorI2luY2x1ZGUgPHB1YmxpYy9w bGF0Zm9ybS5oPgorCiAjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CiAjaW5jbHVkZSA8YXNtL21zci5o PgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KQEAgLTIxNiw2ICsyMTgsMTAgQEAgREVGSU5F X1BFUl9DUFUoc3RydWN0IGNwdV9zaWduYXR1cmUsIGNwdV9zaWcpOwogICovCiBzdGF0aWMgYXRv bWljX3QgY3B1X2luLCBjcHVfb3V0OwoKK3N0YXRpYyB1aW50MzJfdCBhcHBsaWNhdGlvbl9zdHJh dGVneTsKKy8qIFRoZSBuZXh0IENQVSB0byBwZXJmb3JtIGEgdWNvZGUgdXBkYXRlICovCitzdGF0 aWMgaW50IG5leHRfY3B1OworCiAvKgogICogU2F2ZSBhbiB1Y29kZSBwYXRjaCB0byB0aGUgZ2xv YmFsIGNhY2hlIGxpc3QuCiAgKgpAQCAtMzUxLDYgKzM1NywxNiBAQCBzdGF0aWMgaW50IGRvX21p Y3JvY29kZV91cGRhdGUodm9pZCAqdW51c2VkKQogICAgIGlmICggcmV0ICkKICAgICAgICAgcmV0 dXJuIHJldDsKCisgICAgd2hpbGUgKCBhcHBsaWNhdGlvbl9zdHJhdGVneSA9PSBYRU5QRl9taWNy b2NvZGVfc2VxdWVudGlhbCAmJgorICAgICAgICAgICAgY3B1ICE9IG5leHRfY3B1ICkKKyAgICB7 CisgICAgICAgIGZpbmlzaGVkID0gYXRvbWljX3JlYWQoJmNwdV9vdXQpOworICAgICAgICBpZiAo IHdhaXRfZm9yX2NwdXMoJmNwdV9vdXQsIGZpbmlzaGVkICsgMSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1JQ1JPQ09ERV9VUERBVEVfVElNRU9VVF9VUykgKQorICAgICAgICAgICAgcGFu aWMoIlRpbWVvdXQgZHVyaW5nIHNlcXVlbnRpYWwgbWljcm9jb2RlIHVwZGF0ZSAoZmluaXNoZWQg JWQvJWQpIiwKKyAgICAgICAgICAgICAgICAgIGZpbmlzaGVkLCBjcHVfbnIpOworICAgIH0KKwog ICAgIC8qCiAgICAgICogSW5pdGlhdGUgYW4gdXBkYXRlIG9uIGFsbCBwcm9jZXNzb3JzIHdoaWNo IGRvbid0IGhhdmUgYW4gb25saW5lIHNpYmxpbmcKICAgICAgKiB0aHJlYWQgd2l0aCBhIGxvd2Vy IHRocmVhZCBpZC4gT3RoZXIgc2libGluZyB0aHJlYWRzIGp1c3QgYXdhaXQgdGhlCkBAIC0zNTgs NiArMzc0LDEwIEBAIHN0YXRpYyBpbnQgZG9fbWljcm9jb2RlX3VwZGF0ZSh2b2lkICp1bnVzZWQp CiAgICAgICovCiAgICAgaWYgKCBjcHUgPT0gY3B1bWFza19maXJzdChwZXJfY3B1KGNwdV9zaWJs aW5nX21hc2ssIGNwdSkpICkKICAgICAgICAgcmV0ID0gbWljcm9jb2RlX3VwZGF0ZV9jcHUoKTsK KworICAgIGlmICggYXBwbGljYXRpb25fc3RyYXRlZ3kgPT0gWEVOUEZfbWljcm9jb2RlX3NlcXVl bnRpYWwgKQorICAgICAgICBuZXh0X2NwdSA9IGNwdW1hc2tfbmV4dChuZXh0X2NwdSwgJmNwdV9v bmxpbmVfbWFwKTsKKwogICAgIC8qCiAgICAgICogSW5jcmVhc2UgdGhlIHdhaXQgdGltZW91dCB0 byBhIHNhZmUgdmFsdWUgaGVyZSBzaW5jZSB3ZSdyZSBzZXJpYWxpemluZwogICAgICAqIHRoZSBt aWNyb2NvZGUgdXBkYXRlIGFuZCB0aGF0IGNvdWxkIHRha2UgYSB3aGlsZSBvbiBhIGxhcmdlIG51 bWJlciBvZgpAQCAtMzkzLDcgKzQxMyw4IEBAIHN0YXRpYyBpbnQgZG9fbWljcm9jb2RlX3VwZGF0 ZSh2b2lkICp1bnVzZWQpCiAgICAgcmV0dXJuIHJldDsKIH0KCi1pbnQgbWljcm9jb2RlX3VwZGF0 ZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3ZvaWQpIGJ1ZiwgdW5zaWduZWQgbG9uZyBs ZW4pCitpbnQgbWljcm9jb2RlX3VwZGF0ZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3Zv aWQpIGJ1ZiwgdW5zaWduZWQgbG9uZyBsZW4sCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBzdHJhdGVneSkKIHsKICAgICBpbnQgcmV0OwogICAgIHZvaWQgKmJ1ZmZlcjsKQEAgLTQwNSw2 ICs0MjYsMTAgQEAgaW50IG1pY3JvY29kZV91cGRhdGUoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShj b25zdF92b2lkKSBidWYsIHVuc2lnbmVkIGxvbmcgbGVuKQogICAgIGlmICggbWljcm9jb2RlX29w cyA9PSBOVUxMICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CgorICAgIGlmICggc3RyYXRlZ3kg IT0gWEVOUEZfbWljcm9jb2RlX3BhcmFsbGVsICYmCisgICAgICAgICBzdHJhdGVneSAhPSBYRU5Q Rl9taWNyb2NvZGVfc2VxdWVudGlhbCApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCiAgICAg YnVmZmVyID0geG1hbGxvY19ieXRlcyhsZW4pOwogICAgIGlmICggIWJ1ZmZlciApCiAgICAgewpA QCAtNDQ5LDEzICs0NzQsMTkgQEAgaW50IG1pY3JvY29kZV91cGRhdGUoWEVOX0dVRVNUX0hBTkRM RV9QQVJBTShjb25zdF92b2lkKSBidWYsIHVuc2lnbmVkIGxvbmcgbGVuKQogICAgICAgICBpZiAo IGNwdSA9PSBjcHVtYXNrX2ZpcnN0KHBlcl9jcHUoY3B1X3NpYmxpbmdfbWFzaywgY3B1KSkgKQog ICAgICAgICAgICAgbnJfY29yZXMrKzsKCi0gICAgcHJpbnRrKFhFTkxPR19JTkZPICIlZCBjb3Jl cyBhcmUgdG8gdXBkYXRlIHRoZWlyIG1pY3JvY29kZVxuIiwgbnJfY29yZXMpOworICAgIHByaW50 ayhYRU5MT0dfSU5GTyAiJWQgY29yZXMgYXJlIHRvIHVwZGF0ZSB0aGVpciBtaWNyb2NvZGUgJXNc biIsIG5yX2NvcmVzLAorICAgICAgICAgICBzdHJhdGVneSA9PSBYRU5QRl9taWNyb2NvZGVfcGFy YWxsZWwgPyAiaW4gcGFyYWxsZWwiIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInNlcXVlbnRpYWxseSIpOwoKICAgICAvKgogICAgICAqIFdlIGlu dGVuZCB0byBkaXNhYmxlIGludGVycnVwdCBmb3IgbG9uZyB0aW1lLCB3aGljaCBtYXkgbGVhZCB0 bwogICAgICAqIHdhdGNoZG9nIHRpbWVvdXQuCiAgICAgICovCiAgICAgd2F0Y2hkb2dfZGlzYWJs ZSgpOworCisgICAgYXBwbGljYXRpb25fc3RyYXRlZ3kgPSBzdHJhdGVneTsKKyAgICBpZiAoIHN0 cmF0ZWd5ID09IFhFTlBGX21pY3JvY29kZV9zZXF1ZW50aWFsICkKKyAgICAgICAgbmV4dF9jcHUg PSBjcHVtYXNrX2ZpcnN0KCZjcHVfb25saW5lX21hcCk7CiAgICAgLyoKICAgICAgKiBMYXRlIGxv YWRpbmcgZGFuY2UuIFdoeSB0aGUgaGVhdnktaGFuZGVkIHN0b3BfbWFjaGluZSBlZmZvcnQ/CiAg ICAgICoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYyBiL3hl bi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYwppbmRleCBlYTE4YzMyMTVhLi5iNWQyYzU3 OTBiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMKKysrIGIv eGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jCkBAIC0yOTYsNyArMjk2LDggQEAgcmV0 X3QgZG9fcGxhdGZvcm1fb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fcGxhdGZvcm1fb3Bf dCkgdV94ZW5wZl9vcCkKCiAgICAgICAgIHJldCA9IG1pY3JvY29kZV91cGRhdGUoCiAgICAgICAg ICAgICAgICAgZ3Vlc3RfaGFuZGxlX3RvX3BhcmFtKGRhdGEsIGNvbnN0X3ZvaWQpLAotICAgICAg ICAgICAgICAgIG9wLT51Lm1pY3JvY29kZS5sZW5ndGgpOworICAgICAgICAgICAgICAgIG9wLT51 Lm1pY3JvY29kZS5sZW5ndGgsCisgICAgICAgICAgICAgICAgb3AtPnUubWljcm9jb2RlLnN0cmF0 ZWd5KTsKICAgICAgICAgc3Bpbl91bmxvY2soJnZjcHVfYWxsb2NfbG9jayk7CiAgICAgfQogICAg IGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKaW5kZXggMGE2MmRmYTBhMy4uNjEyYjc4NmU4 MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCkBAIC01NzMsNyArNTczLDggQEAgaW50IHJkbXNy X2h5cGVydmlzb3JfcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90ICp2YWwpOwogaW50IHdybXNy X2h5cGVydmlzb3JfcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCk7Cgogdm9pZCBtaWNy b2NvZGVfc2V0X21vZHVsZSh1bnNpZ25lZCBpbnQpOwotaW50IG1pY3JvY29kZV91cGRhdGUoWEVO X0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF92b2lkKSwgdW5zaWduZWQgbG9uZyBsZW4pOworaW50 IG1pY3JvY29kZV91cGRhdGUoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF92b2lkKSwgdW5z aWduZWQgbG9uZyBsZW4sCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzdHJhdGVneSk7 CiBpbnQgZWFybHlfbWljcm9jb2RlX3VwZGF0ZV9jcHUodm9pZCk7CiBpbnQgZWFybHlfbWljcm9j b2RlX2luaXQodm9pZCk7CiBpbnQgbWljcm9jb2RlX2luaXRfaW50ZWwodm9pZCk7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvcGxhdGZvcm0uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9w bGF0Zm9ybS5oCmluZGV4IDk0ZGJjM2ZlYjQuLjRkZWE5NGI4NGQgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy9wbGF0Zm9ybS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9wbGF0Zm9y bS5oCkBAIC0xMTQsNiArMTE0LDkgQEAgc3RydWN0IHhlbnBmX21pY3JvY29kZV91cGRhdGUgewog ICAgIC8qIElOIHZhcmlhYmxlcy4gKi8KICAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0X3ZvaWQp IGRhdGE7LyogUG9pbnRlciB0byBtaWNyb2NvZGUgZGF0YSAqLwogICAgIHVpbnQzMl90IGxlbmd0 aDsgICAgICAgICAgICAgICAgICAvKiBMZW5ndGggb2YgbWljcm9jb2RlIGRhdGEuICovCisjZGVm aW5lIFhFTlBGX21pY3JvY29kZV9wYXJhbGxlbCAgIDAKKyNkZWZpbmUgWEVOUEZfbWljcm9jb2Rl X3NlcXVlbnRpYWwgMQorICAgIHVpbnQzMl90IHN0cmF0ZWd5OyAgICAgICAgICAgICAgICAvKiBB cHBsaWNhdGlvbiBzdHJhdGVneS4gICAgICovCiB9OwogdHlwZWRlZiBzdHJ1Y3QgeGVucGZfbWlj cm9jb2RlX3VwZGF0ZSB4ZW5wZl9taWNyb2NvZGVfdXBkYXRlX3Q7CiBERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5wZl9taWNyb2NvZGVfdXBkYXRlX3QpOwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==