From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6 11/21] x86/cpu: Context switch cpuid masks and faulting state in context_switch() Date: Fri, 8 Apr 2016 21:31:47 +0100 Message-ID: <1460147517-11706-12-git-send-email-andrew.cooper3@citrix.com> References: <1460147517-11706-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460147517-11706-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org QSBzaW5nbGUgY3R4dF9zd2l0Y2hfbGV2ZWxsaW5nKCkgZnVuY3Rpb24gcG9pbnRlciBpcyBwcm92 aWRlZAooZGVmYXVsdGluZyB0byBhbiBlbXB0eSBub3ApLCB3aGljaCBpcyBvdmVycmlkZGVuIGlu IHRoZSBhcHByb3ByaWF0ZQokVkVORE9SX2luaXRfbGV2ZWxsaW5nKCkuCgpzZXRfY3B1aWRfZmF1 bHRpbmcoKSBpcyBtYWRlIHByaXZhdGUgYW5kIGluY2x1ZGVkIHdpdGhpbgppbnRlbF9jdHh0X3N3 aXRjaF9sZXZlbGxpbmcoKS4KCk9uZSAoYXR0ZW1wdGVkKSBmdW5jdGlvbmFsIGNoYW5nZSBpcyB0 aGF0IHRoZSBmYXVsdGluZyBjb25maWd1cmF0aW9uIHNob3VsZApub3QgYmUgc3BlY2lhbCBjYXNl ZCBmb3IgZG9tMC4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSB0b29sc3RhY2sgcmVsaWVzIG9uIHRo ZQpzcGVjaWFsIGNhc2UgKGFuZCBpbmRlZWQsIG9uIGJlaW5nIGEgUFYgZG9tYWluIGluIHRoZSBm aXJzdCBwbGFjZSkgdG8KY29ycmVjdGx5IGJ1aWxkIEhWTSBkb21haW5zLgoKRm9yIG5vdywgdGhl IGNvbnRyb2wgZG9tYWluIGlzIGxlZnQgYXMgYSBzcGVjaWFsIGNhc2UsIHVudGlsIGZ1dGhlciB3 b3JrIGNhbgpiZSBjb21wbGV0ZWQgdG8gcmVtb3ZlIHRoZSByZXN0cmljdGlvbi4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk LWJ5OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBLb25yYWQg Unplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci0tLQp2MzoKICogRG9uJ3Qg bGVhdmUgY3B1aWQgbWFza2luZy9mYXVsdGluZyBhY3RpdmUgZm9yIHRoZSBrZXhlYyBrZXJuZWwu CnYyOgogKiBTdHlsZSBmaXhlcy4KICogQVNTRVJUKCkgdGhhdCBmYXVsdGluZyBpcyBhdmFpbGFi bGUgaW4gc2V0X2NwdWlkX2ZhdWx0aW5nKCkuCnY1OgogKiBGaXggdGhlIGJ1aWxkaW5nIG9mIEhW TSBkb21haW5zIGZyb20gaGFyZHdhcmUgd2l0aCBmYXVsdGluZyBhdmFpbGFibGUuCi0tLQogeGVu L2FyY2gveDg2L2NwdS9hbWQuYyAgICAgICAgICB8ICAzICsrKwogeGVuL2FyY2gveDg2L2NwdS9j b21tb24uYyAgICAgICB8ICA3ICsrKysrKysKIHhlbi9hcmNoL3g4Ni9jcHUvaW50ZWwuYyAgICAg ICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94 ODYvY3Jhc2guYyAgICAgICAgICAgIHwgIDMgKysrCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAg ICAgICAgIHwgIDQgKy0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCB8ICAyICst CiA2IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9hbWQuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMK aW5kZXggOTNhOGE1ZS4uM2UyZjRhOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9hbWQu YworKysgYi94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCkBAIC0zMzEsNiArMzMxLDkgQEAgc3RhdGlj IHZvaWQgX19pbml0IG5vaW5saW5lIGFtZF9pbml0X2xldmVsbGluZyh2b2lkKQogCQkgICAgICAg KHVpbnQzMl90KWNwdWlkbWFza19kZWZhdWx0cy5fN2FiMCwKIAkJICAgICAgICh1aW50MzJfdClj cHVpZG1hc2tfZGVmYXVsdHMuXzZjKTsKIAl9CisKKwlpZiAobGV2ZWxsaW5nX2NhcHMpCisJCWN0 eHRfc3dpdGNoX2xldmVsbGluZyA9IGFtZF9jdHh0X3N3aXRjaF9sZXZlbGxpbmc7CiB9CiAKIC8q CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L2Nw dS9jb21tb24uYwppbmRleCA3ZWY3NWIwLi5mZTZlYWI0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKQEAgLTg4LDYg Kzg4LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3B1X2RldiBkZWZhdWx0X2NwdSA9IHsKIH07 CiBzdGF0aWMgY29uc3Qgc3RydWN0IGNwdV9kZXYgKnRoaXNfY3B1ID0gJmRlZmF1bHRfY3B1Owog CitzdGF0aWMgdm9pZCBkZWZhdWx0X2N0eHRfc3dpdGNoX2xldmVsbGluZyhjb25zdCBzdHJ1Y3Qg ZG9tYWluICpuZXh0ZCkKK3sKKwkvKiBOb3AgKi8KK30KK3ZvaWQgKCogX19yZWFkX21vc3RseSBj dHh0X3N3aXRjaF9sZXZlbGxpbmcpKGNvbnN0IHN0cnVjdCBkb21haW4gKm5leHRkKSA9CisJZGVm YXVsdF9jdHh0X3N3aXRjaF9sZXZlbGxpbmc7CisKIGJvb2xfdCBvcHRfY3B1X2luZm87CiBib29s ZWFuX3BhcmFtKCJjcHVpbmZvIiwgb3B0X2NwdV9pbmZvKTsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2NwdS9pbnRlbC5jIGIveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCmluZGV4IDZlMWZi YmIuLmUyMWMzMmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94 ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTMyLDEzICszMiwxNSBAQCBzdGF0aWMgYm9vbF90 IF9faW5pdCBwcm9iZV9pbnRlbF9jcHVpZF9mYXVsdGluZyh2b2lkKQogCXJldHVybiAxOwogfQog Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUoYm9vbF90LCBjcHVpZF9mYXVsdGluZ19lbmFibGVkKTsK LXZvaWQgc2V0X2NwdWlkX2ZhdWx0aW5nKGJvb2xfdCBlbmFibGUpCitzdGF0aWMgdm9pZCBzZXRf Y3B1aWRfZmF1bHRpbmcoYm9vbF90IGVuYWJsZSkKIHsKKwlzdGF0aWMgREVGSU5FX1BFUl9DUFUo Ym9vbF90LCBjcHVpZF9mYXVsdGluZ19lbmFibGVkKTsKKwlib29sX3QgKnRoaXNfZW5hYmxlZCA9 ICZ0aGlzX2NwdShjcHVpZF9mYXVsdGluZ19lbmFibGVkKTsKIAl1aW50MzJfdCBoaSwgbG87CiAK LQlpZiAoIWNwdV9oYXNfY3B1aWRfZmF1bHRpbmcgfHwKLQkgICAgdGhpc19jcHUoY3B1aWRfZmF1 bHRpbmdfZW5hYmxlZCkgPT0gZW5hYmxlICkKKwlBU1NFUlQoY3B1X2hhc19jcHVpZF9mYXVsdGlu Zyk7CisKKwlpZiAoKnRoaXNfZW5hYmxlZCA9PSBlbmFibGUpCiAJCXJldHVybjsKIAogCXJkbXNy KE1TUl9JTlRFTF9NSVNDX0ZFQVRVUkVTX0VOQUJMRVMsIGxvLCBoaSk7CkBAIC00Nyw3ICs0OSw3 IEBAIHZvaWQgc2V0X2NwdWlkX2ZhdWx0aW5nKGJvb2xfdCBlbmFibGUpCiAJCWxvIHw9IE1TUl9N SVNDX0ZFQVRVUkVTX0NQVUlEX0ZBVUxUSU5HOwogCXdybXNyKE1TUl9JTlRFTF9NSVNDX0ZFQVRV UkVTX0VOQUJMRVMsIGxvLCBoaSk7CiAKLQl0aGlzX2NwdShjcHVpZF9mYXVsdGluZ19lbmFibGVk KSA9IGVuYWJsZTsKKwkqdGhpc19lbmFibGVkID0gZW5hYmxlOwogfQogCiAvKgpAQCAtMTU0LDYg KzE1NiwyOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jdHh0X3N3aXRjaF9sZXZlbGxpbmcoY29uc3Qg c3RydWN0IGRvbWFpbiAqbmV4dGQpCiAJc3RydWN0IGNwdWlkbWFza3MgKnRoZXNlX21hc2tzID0g JnRoaXNfY3B1KGNwdWlkbWFza3MpOwogCWNvbnN0IHN0cnVjdCBjcHVpZG1hc2tzICptYXNrcyA9 ICZjcHVpZG1hc2tfZGVmYXVsdHM7CiAKKwlpZiAoY3B1X2hhc19jcHVpZF9mYXVsdGluZykgewor CQkvKgorCQkgKiBXZSAqc2hvdWxkKiBiZSBlbmFibGluZyBmYXVsdGluZyBmb3IgdGhlIGNvbnRy b2wgZG9tYWluLgorCQkgKgorCQkgKiBVbmZvcnR1bmF0ZWx5LCB0aGUgZG9tYWluIGJ1aWxkZXIg KGhhdmluZyBvbmx5IGV2ZXIgYmVlbiBhCisJCSAqIFBWIGd1ZXN0KSBleHBlY3RzIHRvIGJlIGFi bGUgdG8gc2VlIGhvc3QgY3B1aWQgc3RhdGUgaW4gYQorCQkgKiBuYXRpdmUgQ1BVSUQgaW5zdHJ1 Y3Rpb24sIHRvIGNvcnJlY3RseSBidWlsZCBhIENQVUlEIHBvbGljeQorCQkgKiBmb3IgSFZNIGd1 ZXN0cyAobm90YWJseSB0aGUgeHN0YXRlIGxlYXZlcykuCisJCSAqCisJCSAqIFRoaXMgbG9naWMg aXMgZnVuZGltZW50YWxseSBicm9rZW4gZm9yIEhWTSB0b29sc3RhY2sKKwkJICogZG9tYWlucywg YW5kIGZhdWx0aW5nIGNhdXNlcyBQViBndWVzdHMgdG8gYmVoYXZlIGxpa2UgSFZNCisJCSAqIGd1 ZXN0cyBmcm9tIHRoZWlyIHBvaW50IG9mIHZpZXcuCisJCSAqCisJCSAqIEZ1dHVyZSBkZXZlbG9w bWVudCBwbGFucyB3aWxsIG1vdmUgcmVzcG9uc2liaWxpdHkgZm9yCisJCSAqIGdlbmVyYXRpbmcg dGhlIG1heGltdW0gZnVsbCBjcHVpZCBwb2xpY3kgaW50byBYZW4sIGF0IHdoaWNoCisJCSAqIHRo aXMgcHJvYmxlbSB3aWxsIGRpc2FwcGVhci4KKwkJICovCisJCXNldF9jcHVpZF9mYXVsdGluZyhu ZXh0ZCAmJiBpc19wdl9kb21haW4obmV4dGQpICYmCisJCQkJICAgIWlzX2NvbnRyb2xfZG9tYWlu KG5leHRkKSk7CisJCXJldHVybjsKKwl9CisKICNkZWZpbmUgTEFaWShtc3IsIGZpZWxkKQkJCQkJ CVwKIAkoewkJCQkJCQkJXAogCQlpZiAodW5saWtlbHkodGhlc2VfbWFza3MtPmZpZWxkICE9IG1h c2tzLT5maWVsZCkgJiYJXApAQCAtMjI3LDYgKzI1MSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBu b2lubGluZSBpbnRlbF9pbml0X2xldmVsbGluZyh2b2lkKQogCQkJICAgICAgICh1aW50MzJfdClj cHVpZG1hc2tfZGVmYXVsdHMuZTFjZCwKIAkJCSAgICAgICAodWludDMyX3QpY3B1aWRtYXNrX2Rl ZmF1bHRzLkRhMSk7CiAJfQorCisJaWYgKGxldmVsbGluZ19jYXBzKQorCQljdHh0X3N3aXRjaF9s ZXZlbGxpbmcgPSBpbnRlbF9jdHh0X3N3aXRjaF9sZXZlbGxpbmc7CiB9CiAKIHN0YXRpYyB2b2lk IGVhcmx5X2luaXRfaW50ZWwoc3RydWN0IGNwdWluZm9feDg2ICpjKQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2NyYXNoLmMgYi94ZW4vYXJjaC94ODYvY3Jhc2guYwppbmRleCA4ODhhMjE0Li5m MjhmNTI3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3Jhc2guYworKysgYi94ZW4vYXJjaC94 ODYvY3Jhc2guYwpAQCAtMTg5LDYgKzE4OSw5IEBAIHZvaWQgbWFjaGluZV9jcmFzaF9zaHV0ZG93 bih2b2lkKQogCiAgICAgbm1pX3Nob290ZG93bl9jcHVzKCk7CiAKKyAgICAvKiBSZXNldCBDUFVJ RCBtYXNraW5nIGFuZCBmYXVsdGluZyB0byB0aGUgaG9zdCdzIGRlZmF1bHQuICovCisgICAgY3R4 dF9zd2l0Y2hfbGV2ZWxsaW5nKE5VTEwpOworCiAgICAgaW5mbyA9IGtleGVjX2NyYXNoX3NhdmVf aW5mbygpOwogICAgIGluZm8tPnhlbl9waHlzX3N0YXJ0ID0geGVuX3BoeXNfc3RhcnQ7CiAgICAg aW5mby0+ZG9tMF9wZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdCA9CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggYTRmNmRiMi4u Y2JhNzdhMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNo L3g4Ni9kb21haW4uYwpAQCAtMjA4Miw5ICsyMDgyLDcgQEAgdm9pZCBjb250ZXh0X3N3aXRjaChz dHJ1Y3QgdmNwdSAqcHJldiwgc3RydWN0IHZjcHUgKm5leHQpCiAgICAgICAgICAgICBsb2FkX3Nl Z21lbnRzKG5leHQpOwogICAgICAgICB9CiAKLSAgICAgICAgc2V0X2NwdWlkX2ZhdWx0aW5nKGlz X3B2X2RvbWFpbihuZXh0ZCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc19jb250 cm9sX2RvbWFpbihuZXh0ZCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc19oYXJk d2FyZV9kb21haW4obmV4dGQpKTsKKyAgICAgICAgY3R4dF9zd2l0Y2hfbGV2ZWxsaW5nKG5leHRk KTsKICAgICB9CiAKICAgICBjb250ZXh0X3NhdmVkKHByZXYpOwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29y LmgKaW5kZXggYTk1MDU1NC4uZjI5ZDM3MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wcm9jZXNzb3IuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCkBAIC0y MDksNyArMjA5LDcgQEAgZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBib290X2NwdV9kYXRhOwog ZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBjcHVfZGF0YVtdOwogI2RlZmluZSBjdXJyZW50X2Nw dV9kYXRhIGNwdV9kYXRhW3NtcF9wcm9jZXNzb3JfaWQoKV0KIAotZXh0ZXJuIHZvaWQgc2V0X2Nw dWlkX2ZhdWx0aW5nKGJvb2xfdCBlbmFibGUpOworZXh0ZXJuIHZvaWQgKCpjdHh0X3N3aXRjaF9s ZXZlbGxpbmcpKGNvbnN0IHN0cnVjdCBkb21haW4gKm5leHRkKTsKIAogZXh0ZXJuIHU2NCBob3N0 X3BhdDsKIGV4dGVybiBib29sX3Qgb3B0X2NwdV9pbmZvOwotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=