From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v6 06/24] x86: refactor psr: implement get hw info flow. Date: Wed, 8 Feb 2017 16:15:58 +0800 Message-ID: <1486541776-8406-7-git-send-email-yi.y.sun@linux.intel.com> References: <1486541776-8406-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbNTG-0005nW-9r for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 08:19:22 +0000 In-Reply-To: <1486541776-8406-1-git-send-email-yi.y.sun@linux.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.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdldCBIVyBpbmZvIGZsb3cgaW5jbHVkaW5nIEwzIENBVCBj YWxsYmFjawpmdW5jdGlvbi4KCkl0IGFsc28gY2hhbmdlcyBzeXNjdGwgaW50ZXJmYWNlIHRvIG1h a2UgaXQgbW9yZSBnZW5lcmFsLgoKV2l0aCB0aGlzIHBhdGNoLCAncHNyLWh3aW5mbycgY2FuIHdv cmsgZm9yIEwzIENBVC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50 ZWwuY29tPgotLS0KdjY6CiAgICAtIGFkanVzdCAneycgcG9zaXRpb24gZm9yIHN3aXRjaC4KICAg IC0gZGVmaW5lICdQU1JfU09DS0VUX1VOS05PV04gPSAweEZGRkYnIGluICdlbnVtIHBzcl9mZWF0 X3R5cGUnLgogICAgLSB1c2UgJ0VSQU5HRScgd2hlbiBzb2NrZXQgaWQgZXhjZWVkcyB0aGUgcmFu Z2UuCiAgICAtIGFkanVzdCB2YWx1ZSBwb3N0aW9uIG9mIG1hY3Jvcy4KLS0tCiB4ZW4vYXJjaC94 ODYvcHNyLmMgICAgICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9zeXNjdGwuYyAgICAgfCAxNCArKysrKy0tLS0KIHhl bi9pbmNsdWRlL2FzbS14ODYvcHNyLmggfCAxOSArKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDg5ZmJhYWEuLmQ0YTkwMDMg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMK QEAgLTg0LDYgKzg0LDcgQEAgZW51bSBwc3JfZmVhdF90eXBlIHsKICAgICBQU1JfU09DS0VUX0wz X0NBVCA9IDAsCiAgICAgUFNSX1NPQ0tFVF9MM19DRFAsCiAgICAgUFNSX1NPQ0tFVF9MMl9DQVQs CisgICAgUFNSX1NPQ0tFVF9VTktOT1dOID0gMHhGRkZGLAogfTsKIAogLyogQ0FUL0NEUCBIVyBp bmZvIGRhdGEgc3RydWN0dXJlLiAqLwpAQCAtMTEyLDYgKzExMyw5IEBAIHN0cnVjdCBmZWF0X25v ZGU7CiBzdHJ1Y3QgZmVhdF9vcHMgewogICAgIC8qIGdldF9jb3NfbWF4IGlzIHVzZWQgdG8gZ2V0 IGZlYXR1cmUncyBjb3NfbWF4LiAqLwogICAgIHVuc2lnbmVkIGludCAoKmdldF9jb3NfbWF4KShj b25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KTsKKyAgICAvKiBnZXRfZmVhdF9pbmZvIGlzIHVz ZWQgdG8gZ2V0IGZlYXR1cmUgSFcgaW5mby4gKi8KKyAgICBib29sICgqZ2V0X2ZlYXRfaW5mbyko Y29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgZGF0YVtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKTsKIH07CiAKIC8qCkBAIC0x NzksNiArMTgzLDI0IEBAIHN0YXRpYyB2b2lkIGZyZWVfZmVhdHVyZShzdHJ1Y3QgcHNyX3NvY2tl dF9pbmZvICppbmZvKQogICAgIH0KIH0KIAorc3RhdGljIGVudW0gcHNyX2ZlYXRfdHlwZSBwc3Jf Y2JtX3R5cGVfdG9fZmVhdF90eXBlKGVudW0gY2JtX3R5cGUgdHlwZSkKK3sKKyAgICBlbnVtIHBz cl9mZWF0X3R5cGUgZmVhdF90eXBlOworCisgICAgLyogSnVkZ2UgaWYgZmVhdHVyZSBpcyBlbmFi bGVkLiAqLworICAgIHN3aXRjaCAoIHR5cGUgKQorICAgIHsKKyAgICBjYXNlIFBTUl9DQk1fVFlQ RV9MMzoKKyAgICAgICAgZmVhdF90eXBlID0gUFNSX1NPQ0tFVF9MM19DQVQ7CisgICAgICAgIGJy ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGZlYXRfdHlwZSA9IFBTUl9TT0NLRVRfVU5LTk9X TjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZlYXRfdHlwZTsKK30KKwog LyogTDMgQ0FUIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlvbi4gKi8KIHN0YXRpYyB2b2lkIGwzX2Nh dF9pbml0X2ZlYXR1cmUoc3RydWN0IGNwdWlkX2xlYWYgcmVncywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKQEAgLTIyMiw4ICsyNDQsMjIg QEAgc3RhdGljIHVuc2lnbmVkIGludCBsM19jYXRfZ2V0X2Nvc19tYXgoY29uc3Qgc3RydWN0IGZl YXRfbm9kZSAqZmVhdCkKICAgICByZXR1cm4gZmVhdC0+aW5mby5sM19jYXRfaW5mby5jb3NfbWF4 OwogfQogCitzdGF0aWMgYm9vbCBsM19jYXRfZ2V0X2ZlYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZmVh dF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ZGF0YVtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKQoreworICAgIGlmICggIWRhdGEgfHwgMyA+ IGFycmF5X2xlbiApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRhdGFbQ0JNX0xFTl0g PSBmZWF0LT5pbmZvLmwzX2NhdF9pbmZvLmNibV9sZW47CisgICAgZGF0YVtDT1NfTUFYXSA9IGZl YXQtPmluZm8ubDNfY2F0X2luZm8uY29zX21heDsKKyAgICBkYXRhW1BTUl9GTEFHXSA9IDA7CisK KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X29wcyBsM19j YXRfb3BzID0gewogICAgIC5nZXRfY29zX21heCA9IGwzX2NhdF9nZXRfY29zX21heCwKKyAgICAu Z2V0X2ZlYXRfaW5mbyA9IGwzX2NhdF9nZXRfZmVhdF9pbmZvLAogfTsKIAogc3RhdGljIHZvaWQg X19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVlLCBjaGFyICpmZWF0dXJl LApAQCAtNDI5LDEwICs0NjUsNDMgQEAgdm9pZCBwc3JfY3R4dF9zd2l0Y2hfdG8oc3RydWN0IGRv bWFpbiAqZCkKICAgICB9CiB9CiAKLWludCBwc3JfZ2V0X2NhdF9sM19pbmZvKHVuc2lnbmVkIGlu dCBzb2NrZXQsIHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpmbGFncykKK3N0YXRpYyBzdHJ1Y3QgcHNyX3NvY2tl dF9pbmZvICpnZXRfc29ja2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCkKIHsKLSAgICByZXR1 cm4gMDsKKyAgICBpZiAoICFzb2NrZXRfaW5mbyApCisgICAgICAgIHJldHVybiBFUlJfUFRSKC1F Tk9ERVYpOworCisgICAgaWYgKCBzb2NrZXQgPj0gbnJfc29ja2V0cyApCisgICAgICAgIHJldHVy biBFUlJfUFRSKC1FUkFOR0UpOworCisgICAgaWYgKCAhc29ja2V0X2luZm9bc29ja2V0XS5mZWF0 X21hc2sgKQorICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKKworICAgIHJldHVybiBz b2NrZXRfaW5mbyArIHNvY2tldDsKK30KKworaW50IHBzcl9nZXRfaW5mbyh1bnNpZ25lZCBpbnQg c29ja2V0LCBlbnVtIGNibV90eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRh dGFbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbikKK3sKKyAgICBjb25zdCBzdHJ1Y3QgcHNyX3Nv Y2tldF9pbmZvICppbmZvID0gZ2V0X3NvY2tldF9pbmZvKHNvY2tldCk7CisgICAgY29uc3Qgc3Ry dWN0IGZlYXRfbm9kZSAqZmVhdDsKKyAgICBlbnVtIHBzcl9mZWF0X3R5cGUgZmVhdF90eXBlOwor CisgICAgaWYgKCBJU19FUlIoaW5mbykgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihpbmZvKTsK KworICAgIGZlYXRfdHlwZSA9IHBzcl9jYm1fdHlwZV90b19mZWF0X3R5cGUodHlwZSk7CisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeShmZWF0LCAmaW5mby0+ZmVhdF9saXN0LCBsaXN0KQorICAgIHsK KyAgICAgICAgaWYgKCBmZWF0LT5mZWF0dXJlICE9IGZlYXRfdHlwZSApCisgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICBpZiAoIGZlYXQtPm9wcy5nZXRfZmVhdF9pbmZvKGZlYXQsIGRh dGEsIGFycmF5X2xlbikgKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiAtRU5PRU5UOwog fQogCiBpbnQgcHNyX2dldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNv Y2tldCwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYyBiL3hlbi9hcmNoL3g4Ni9z eXNjdGwuYwppbmRleCBiOGMzMGQ0Li5lMzQwYmFhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv c3lzY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCkBAIC0xNzYsMTUgKzE3NiwxOSBA QCBsb25nIGFyY2hfZG9fc3lzY3RsKAogICAgICAgICBzd2l0Y2ggKCBzeXNjdGwtPnUucHNyX2Nh dF9vcC5jbWQgKQogICAgICAgICB7CiAgICAgICAgIGNhc2UgWEVOX1NZU0NUTF9QU1JfQ0FUX2dl dF9sM19pbmZvOgotICAgICAgICAgICAgcmV0ID0gcHNyX2dldF9jYXRfbDNfaW5mbyhzeXNjdGwt PnUucHNyX2NhdF9vcC50YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uY2JtX2xlbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5m by5jb3NfbWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3lzY3Rs LT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmZsYWdzKTsKKyAgICAgICAgeworICAgICAgICAgICAg dWludDMyX3QgZGF0YVszXTsKKyAgICAgICAgICAgIHJldCA9IHBzcl9nZXRfaW5mbyhzeXNjdGwt PnUucHNyX2NhdF9vcC50YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNS X0NCTV9UWVBFX0wzLCBkYXRhLCAzKTsKKworICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRf b3AudS5sM19pbmZvLmNibV9sZW4gPSBkYXRhW0NCTV9MRU5dOworICAgICAgICAgICAgc3lzY3Rs LT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmNvc19tYXggPSBkYXRhW0NPU19NQVhdOworICAgICAg ICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmZsYWdzICAgPSBkYXRhW1BTUl9G TEFHXTsKIAogICAgICAgICAgICAgaWYgKCAhcmV0ICYmIF9fY29weV9maWVsZF90b19ndWVzdCh1 X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9jYXRfb3ApICkKICAgICAgICAgICAgICAgICByZXQgPSAt RUZBVUxUOwogICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgfQogICAgICAgICBkZWZhdWx0 OgogICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7CiAgICAgICAgICAgICBicmVhazsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L3Bzci5oCmluZGV4IDU3ZjQ3ZTkuLjAzNDJhODAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvcHNyLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaApAQCAtMTksMTkgKzE5 LDI0IEBACiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAKIC8qIENBVCBjcHVpZCBsZXZlbCAqLwot I2RlZmluZSBQU1JfQ1BVSURfTEVWRUxfQ0FUICAgMHgxMAorI2RlZmluZSBQU1JfQ1BVSURfTEVW RUxfQ0FUICAgICAgICAweDEwCiAKIC8qIFJlc291cmNlIFR5cGUgRW51bWVyYXRpb24gKi8KLSNk ZWZpbmUgUFNSX1JFU09VUkNFX1RZUEVfTDMgICAgICAgICAgICAweDIKKyNkZWZpbmUgUFNSX1JF U09VUkNFX1RZUEVfTDMgICAgICAgMHgyCiAKIC8qIEwzIE1vbml0b3JpbmcgRmVhdHVyZXMgKi8K LSNkZWZpbmUgUFNSX0NNVF9MM19PQ0NVUEFOQ1kgICAgICAgICAgIDB4MQorI2RlZmluZSBQU1Jf Q01UX0wzX09DQ1VQQU5DWSAgICAgICAweDEKIAogLyogQ0RQIENhcGFiaWxpdHkgKi8KLSNkZWZp bmUgUFNSX0NBVF9DRFBfQ0FQQUJJTElUWSAgICAgICAoMXUgPDwgMikKKyNkZWZpbmUgUFNSX0NB VF9DRFBfQ0FQQUJJTElUWSAgICAgKDF1IDw8IDIpCiAKIC8qIEwzIENEUCBFbmFibGUgYml0Ki8K LSNkZWZpbmUgUFNSX0wzX1FPU19DRFBfRU5BQkxFX0JJVCAgICAgICAweDAKKyNkZWZpbmUgUFNS X0wzX1FPU19DRFBfRU5BQkxFX0JJVCAgMHgwCisKKy8qIFVzZWQgYnkgcHNyX2dldF9pbmZvKCkg Ki8KKyNkZWZpbmUgQ0JNX0xFTiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBDT1NfTUFY ICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFBTUl9GTEFHICAgICAgICAgICAgICAgICAg IDIKIAogc3RydWN0IHBzcl9jbXRfbDMgewogICAgIHVuc2lnbmVkIGludCBmZWF0dXJlczsKQEAg LTYzLDggKzY4LDggQEAgaW50IHBzcl9hbGxvY19ybWlkKHN0cnVjdCBkb21haW4gKmQpOwogdm9p ZCBwc3JfZnJlZV9ybWlkKHN0cnVjdCBkb21haW4gKmQpOwogdm9pZCBwc3JfY3R4dF9zd2l0Y2hf dG8oc3RydWN0IGRvbWFpbiAqZCk7CiAKLWludCBwc3JfZ2V0X2NhdF9sM19pbmZvKHVuc2lnbmVk IGludCBzb2NrZXQsIHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpmbGFncyk7CitpbnQgcHNyX2dldF9pbmZvKHVu c2lnbmVkIGludCBzb2NrZXQsIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAg dWludDMyX3QgZGF0YVtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKTsKIGludCBwc3JfZ2V0X2wz X2NibShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAogICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90ICpjYm0sIGVudW0gY2JtX3R5cGUgdHlwZSk7CiBpbnQgcHNyX3NldF9s M19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKLS0gCjEuOS4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==