Date: Wed, 26 Mar 2014 23:18:02 +0800 From: Jia-Shiun Li <jiashiun@gmail.com> To: freebsd-hackers@freebsd.org Subject: Add CPUID subleaf capability to cpuctl/cpucontrol Message-ID: <CAHNYxxPZ%2BLpVGhgJXRhpMJkotXEY1Hyezye79XB_xHNazVgdng@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--089e0115ffc654ce9904f583fb37 Content-Type: text/plain; charset=UTF-8 Hi all, I am recently writing a small tool playing msr with cpuctl(4). Meanwhile I found that it is currently not passing value but 0 in ECX register to CPUID instruction as input. So I have the attached patch to do it. ECX is used to specify sub-leaf for some EAX leaf value. For example EAX=0x04: Deterministic Cache Parameters Leaf EAX=0x0b: Extended Topology Enumeration Leaf with the attached patch user will be able to get subleaf info by writing applications using cpuctl(4) ioctl or by using cpucontrol(8) with -s flag. Please comment. Regards, Jia-Shiun. --089e0115ffc654ce9904f583fb37 Content-Type: text/plain; charset=US-ASCII; name="cpuid-subleaves.patch.txt" Content-Disposition: attachment; filename="cpuid-subleaves.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ht8rce4s0 SW5kZXg6IHN5cy9kZXYvY3B1Y3RsL2NwdWN0bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9kZXYvY3B1 Y3RsL2NwdWN0bC5jCShyZXZpc2lvbiAyNjM0MjApCisrKyBzeXMvZGV2L2NwdWN0bC9jcHVjdGwu Ywkod29ya2luZyBjb3B5KQpAQCAtMjA0LDcgKzIwNCw3IEBACiAJb2xkY3B1ID0gdGQtPnRkX29u Y3B1OwogCWlzX2JvdW5kID0gY3B1X3NjaGVkX2lzX2JvdW5kKHRkKTsKIAlzZXRfY3B1KGNwdSwg dGQpOwotCWNwdWlkX2NvdW50KGRhdGEtPmxldmVsLCAwLCBkYXRhLT5kYXRhKTsKKwljcHVpZF9j b3VudChkYXRhLT5sZXZlbCwgZGF0YS0+c3VibGV2ZWwsIGRhdGEtPmRhdGEpOwogCXJlc3RvcmVf Y3B1KG9sZGNwdSwgaXNfYm91bmQsIHRkKTsKIAlyZXR1cm4gKDApOwogfQpJbmRleDogc3lzL3N5 cy9jcHVjdGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3lzL2NwdWN0bC5oCShyZXZpc2lvbiAyNjM0 MjApCisrKyBzeXMvc3lzL2NwdWN0bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA CiAKIHR5cGVkZWYgc3RydWN0IHsKIAlpbnQJCWxldmVsOwkvKiBDUFVJRCBsZXZlbCAqLworCWlu dAkJc3VibGV2ZWw7IC8qIHN1YmxldmVsICovCiAJdWludDMyX3QJZGF0YVs0XTsKIH0gY3B1Y3Rs X2NwdWlkX2FyZ3NfdDsKIApJbmRleDogdXNyLnNiaW4vY3B1Y29udHJvbC9jcHVjb250cm9sLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdXNyLnNiaW4vY3B1Y29udHJvbC9jcHVjb250cm9sLmMJKHJldmlzaW9u IDI2MzQyMCkKKysrIHVzci5zYmluL2NwdWNvbnRyb2wvY3B1Y29udHJvbC5jCSh3b3JraW5nIGNv cHkpCkBAIC02MCw2ICs2MCw3IEBACiAjZGVmaW5lCUZMQUdfSQkweDAxCiAjZGVmaW5lCUZMQUdf TQkweDAyCiAjZGVmaW5lCUZMQUdfVQkweDA0CisjZGVmaW5lCUZMQUdfUwkweDA4CiAKICNkZWZp bmUJT1BfSU5WQUwJMHgwMAogI2RlZmluZQlPUF9SRUFECQkweDAxCkBAIC05OCw3ICs5OSw3IEBA CiAKIHN0YXRpYyB2b2lkCXVzYWdlKHZvaWQpOwogc3RhdGljIGludAlpc2Rpcihjb25zdCBjaGFy ICpwYXRoKTsKLXN0YXRpYyBpbnQJZG9fY3B1aWQoY29uc3QgY2hhciAqY21kYXJnLCBjb25zdCBj aGFyICpkZXYpOworc3RhdGljIGludAlkb19jcHVpZChjb25zdCBjaGFyICpjbWRhcmcsIGNvbnN0 IGNoYXIgKnN1YmxldmVsYXJnLCBjb25zdCBjaGFyICpkZXYpOwogc3RhdGljIGludAlkb19tc3Io Y29uc3QgY2hhciAqY21kYXJnLCBjb25zdCBjaGFyICpkZXYpOwogc3RhdGljIGludAlkb191cGRh dGUoY29uc3QgY2hhciAqZGV2KTsKIHN0YXRpYyB2b2lkCWRhdGFkaXJfYWRkKGNvbnN0IGNoYXIg KnBhdGgpOwpAQCAtMTMxLDkgKzEzMiwxMCBAQAogfQogCiBzdGF0aWMgaW50Ci1kb19jcHVpZChj b25zdCBjaGFyICpjbWRhcmcsIGNvbnN0IGNoYXIgKmRldikKK2RvX2NwdWlkKGNvbnN0IGNoYXIg KmNtZGFyZywgY29uc3QgY2hhciAqc3VibGV2ZWxhcmcsIGNvbnN0IGNoYXIgKmRldikKIHsKIAl1 bnNpZ25lZCBpbnQgbGV2ZWw7CisJdW5zaWduZWQgaW50IHN1YmxldmVsOwogCWNwdWN0bF9jcHVp ZF9hcmdzX3QgYXJnczsKIAlpbnQgZmQsIGVycm9yOwogCWNoYXIgKmVuZHB0cjsKQEAgLTE0Nywx MSArMTQ5LDIyIEBACiAJCXVzYWdlKCk7CiAJCS8qIE5PVFJFQUNIRUQgKi8KIAl9CisJaWYgKHN1 YmxldmVsYXJnICE9IE5VTEwpIHsKKwkJc3VibGV2ZWwgPSBzdHJ0b3VsKHN1YmxldmVsYXJnLCAm ZW5kcHRyLCAxNik7CisJCWlmICgqc3VibGV2ZWxhcmcgPT0gJ1wwJyB8fCAqZW5kcHRyICE9ICdc MCcpIHsKKwkJCVdBUk5YKDAsICJpbmNvcnJlY3Qgb3BlcmFuZDogJXMiLCBjbWRhcmcpOworCQkJ dXNhZ2UoKTsKKwkJCS8qIE5PVFJFQUNIRUQgKi8KKwkJfQorCX0gZWxzZSB7CisJCXN1YmxldmVs ID0gMDsKKwl9CiAKIAkvKgogCSAqIEZpbGwgaW9jdGwgYXJndW1lbnQgc3RydWN0dXJlLgogCSAq LwogCWFyZ3MubGV2ZWwgPSBsZXZlbDsKKwlhcmdzLnN1YmxldmVsID0gc3VibGV2ZWw7CiAJZmQg PSBvcGVuKGRldiwgT19SRE9OTFkpOwogCWlmIChmZCA8IDApIHsKIAkJV0FSTigwLCAiZXJyb3Ig b3BlbmluZyAlcyBmb3IgcmVhZGluZyIsIGRldik7CkBAIC0xNjMsOCArMTc2LDggQEAKIAkJY2xv c2UoZmQpOwogCQlyZXR1cm4gKGVycm9yKTsKIAl9Ci0JZnByaW50ZihzdGRvdXQsICJjcHVpZCBs ZXZlbCAweCV4OiAweCUuOHggMHglLjh4IDB4JS44eCAweCUuOHhcbiIsCi0JICAgIGxldmVsLCBh cmdzLmRhdGFbMF0sIGFyZ3MuZGF0YVsxXSwgYXJncy5kYXRhWzJdLCBhcmdzLmRhdGFbM10pOwor CWZwcmludGYoc3Rkb3V0LCAiY3B1aWQgbGV2ZWwgMHgleCBzdWJsZXZlbCAweCV4OiAweCUuOHgg MHglLjh4IDB4JS44eCAweCUuOHhcbiIsCisJICAgIGxldmVsLCBzdWJsZXZlbCwgYXJncy5kYXRh WzBdLCBhcmdzLmRhdGFbMV0sIGFyZ3MuZGF0YVsyXSwgYXJncy5kYXRhWzNdKTsKIAljbG9zZShm ZCk7CiAJcmV0dXJuICgwKTsKIH0KQEAgLTM2NywxOCArMzgwLDIwIEBACiB7CiAJaW50IGMsIGZs YWdzOwogCWNvbnN0IGNoYXIgKmNtZGFyZzsKKwljb25zdCBjaGFyICpzdWJsZXZlbGFyZzsKIAlj b25zdCBjaGFyICpkZXY7CiAJaW50IGVycm9yOwogCiAJZmxhZ3MgPSAwOwogCWVycm9yID0gMDsK LQljbWRhcmcgPSAiIjsJLyogVG8ga2VlcCBnY2MzIGhhcHB5LiAqLworCWNtZGFyZyA9IE5VTEw7 CisJc3VibGV2ZWxhcmcgPSBOVUxMOwogCiAJLyoKIAkgKiBBZGQgYWxsIGRlZmF1bHQgZGF0YSBk aXJzIHRvIHRoZSBsaXN0IGZpcnN0LgogCSAqLwogCWRhdGFkaXJfYWRkKERFRkFVTFRfREFUQURJ Uik7Ci0Jd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJkOmhpOm06dXYiKSkgIT0gLTEp IHsKKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgImQ6aGk6bTp1dnM6IikpICE9IC0x KSB7CiAJCXN3aXRjaCAoYykgewogCQljYXNlICdkJzoKIAkJCWRhdGFkaXJfYWRkKG9wdGFyZyk7 CkBAIC0zOTEsNiArNDA2LDEwIEBACiAJCQlmbGFncyB8PSBGTEFHX007CiAJCQljbWRhcmcgPSBv cHRhcmc7CiAJCQlicmVhazsKKwkJY2FzZSAncyc6CisJCQlmbGFncyB8PSBGTEFHX1M7CisJCQlz dWJsZXZlbGFyZyA9IG9wdGFyZzsKKwkJCWJyZWFrOwogCQljYXNlICd1JzoKIAkJCWZsYWdzIHw9 IEZMQUdfVTsKIAkJCWJyZWFrOwpAQCAtNDE0LDcgKzQzMywxMSBAQAogCWMgPSBmbGFncyAmIChG TEFHX0kgfCBGTEFHX00gfCBGTEFHX1UpOwogCXN3aXRjaCAoYykgewogCQljYXNlIEZMQUdfSToK LQkJCWVycm9yID0gZG9fY3B1aWQoY21kYXJnLCBkZXYpOworCQkJaWYgKDAgIT0gKGZsYWdzICYg RkxBR19TKSkgeworCQkJCWVycm9yID0gZG9fY3B1aWQoY21kYXJnLCBzdWJsZXZlbGFyZywgZGV2 KTsKKwkJCX0gZWxzZSB7CisJCQkJZXJyb3IgPSBkb19jcHVpZChjbWRhcmcsIE5VTEwsIGRldik7 CisJCQl9CiAJCQlicmVhazsKIAkJY2FzZSBGTEFHX006CiAJCQllcnJvciA9IGRvX21zcihjbWRh cmcsIGRldik7Cg== --089e0115ffc654ce9904f583fb37--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHNYxxPZ%2BLpVGhgJXRhpMJkotXEY1Hyezye79XB_xHNazVgdng>