From owner-freebsd-hackers@FreeBSD.ORG Wed Mar 26 15:18:33 2014 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EB37AE2C for ; Wed, 26 Mar 2014 15:18:33 +0000 (UTC) Received: from mail-ob0-x231.google.com (mail-ob0-x231.google.com [IPv6:2607:f8b0:4003:c01::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B6D30B80 for ; Wed, 26 Mar 2014 15:18:33 +0000 (UTC) Received: by mail-ob0-f177.google.com with SMTP id wo20so2580725obc.22 for ; Wed, 26 Mar 2014 08:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=+3uoGd8olX95uuNhBW2P6bb/F52mCf3t5cZnLanJw5o=; b=FIQpIS8CdhapoZZfiks1aRwJuEN5fn2HaHwDV8yG1/TPoPJIrUPaiPFmLPcz7QzAFd ljDtf5jK32pDkIAoOJfXBga5g03qif/zNjnVe/PQAuUU3YhVxRJZ4is9m+6jxDi6XCLj ao1v7itz8YcDdlzUhOuizSVodKR9VfaXndmnM3wyHODtvKviB1VKdDS3122m24qmYsUD ywvKIJTDfm4fRhF1Xbaq9+/+56gvdKuwtvYaXypRXhdLW6QhnnlVx0wIJDx+NyFiV3iH kDzUBPmZf4vtI9mEGdaNjtp4EQBztY1sJl7q9a+pJnaBcMu8TNWPB+aXcsTSAEpQlece Xqmw== X-Received: by 10.60.54.228 with SMTP id m4mr37787145oep.29.1395847112940; Wed, 26 Mar 2014 08:18:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.76.80.194 with HTTP; Wed, 26 Mar 2014 08:18:02 -0700 (PDT) From: Jia-Shiun Li Date: Wed, 26 Mar 2014 23:18:02 +0800 Message-ID: Subject: Add CPUID subleaf capability to cpuctl/cpucontrol To: freebsd-hackers@freebsd.org Content-Type: multipart/mixed; boundary=089e0115ffc654ce9904f583fb37 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Mar 2014 15:18:34 -0000 --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--