kern/119350: cpufreq(est) reports invalid frequency.

Takeharu KATO takeharu1219 at ybb.ne.jp
Fri Jan 4 18:50:02 PST 2008


>Number:         119350
>Category:       kern
>Synopsis:       cpufreq(est) reports invalid frequency.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jan 05 02:50:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Takeharu KATO
>Release:        FreeBSD 8.0-CURRENT i386
>Organization:
none
>Environment:
System: FreeBSD ambrose 8.0-CURRENT FreeBSD 8.0-CURRENT #20: Sat Jan 5 10:36:22 UTC 2008 root at ambrose:/usr/obj/usr/src/sys/GENERIC i386
	machine: Panasonic CF-R7
	OS     : FreeBSD
	target : i386
>Description:
	Cpufreq(est) does not check setting values which are reported from
	acpi_perf, so cpu freqency table in cpufreq driver contains
	invalid setting value(invalid id16 value). 
	Due to this issue, the powerd can not decrease clock speed when cpu
	is in idle.

	Some people reports same issue on various machines.

	According to comments in sys/i386/cpufreq/est.c,
	the auther of the driver regards this as TODO thing
	(see following lines.).
	--
	for (i = 0; i < count; i++) {
	/*
	 * TODO: Figure out validity checks for id16.  Linux checks
	 * that the control and status values match.
	 */
	--

>How-To-Repeat:
	<code/input/activities to reproduce the problem (multiple lines)>
	Run powerd on CF-R7.
>Fix:
	I wrote the patch to fix the issue.
	This patch checks whether id16 value is acutally effective or not,
	and if it is effective then register setting values to cpufreq tables.





--------------020608060902050406020903
Content-Type: text/plain;
 name="est-fix.patch"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="est-fix.patch"

LS0tIHN5cy5vcmlnL2kzODYvY3B1ZnJlcS9lc3QuYwkyMDA2LTA1LTExIDE3OjM1OjQ0LjAw
MDAwMDAwMCArMDAwMAorKysgc3lzL2kzODYvY3B1ZnJlcS9lc3QuYwkyMDA4LTAxLTA1IDEw
OjU2OjE0LjQzNTg4MjIxMyArMDAwMApAQCAtOTAyLDYgKzkwMiw4IEBACiBzdGF0aWMgaW50
CWVzdF9zZXQoZGV2aWNlX3QgZGV2LCBjb25zdCBzdHJ1Y3QgY2Zfc2V0dGluZyAqc2V0KTsK
IHN0YXRpYyBpbnQJZXN0X2dldChkZXZpY2VfdCBkZXYsIHN0cnVjdCBjZl9zZXR0aW5nICpz
ZXQpOwogc3RhdGljIGludAllc3RfdHlwZShkZXZpY2VfdCBkZXYsIGludCAqdHlwZSk7Citz
dGF0aWMgaW50CWVzdF9zZXRfaWQxNih1aW50MTZfdCBpZDE2LCBpbnQgbmVlZF9jaGVjayk7
CitzdGF0aWMgdm9pZAllc3RfZ2V0X2lkMTYodWludDE2X3QgKmlkMTZfcCk7CiAKIHN0YXRp
YyBkZXZpY2VfbWV0aG9kX3QgZXN0X21ldGhvZHNbXSA9IHsKIAkvKiBEZXZpY2UgaW50ZXJm
YWNlICovCkBAIC0xMDY4LDcgKzEwNzAsNiBAQAogCiAJcmV0dXJuICgwKTsKIH0KLQogc3Rh
dGljIGludAogZXN0X2FjcGlfaW5mbyhkZXZpY2VfdCBkZXYsIGZyZXFfaW5mbyAqKmZyZXFz
KQogewpAQCAtMTA3Niw3ICsxMDc3LDggQEAKIAlzdHJ1Y3QgY2Zfc2V0dGluZyAqc2V0czsK
IAlmcmVxX2luZm8gKnRhYmxlOwogCWRldmljZV90IHBlcmZfZGV2OwotCWludCBjb3VudCwg
ZXJyb3IsIGk7CisJaW50IGNvdW50LCBlcnJvciwgaSwgaWR4OworCXVpbnQxNl90IHNhdmVk
X2lkMTY7CiAKIAlwZXJmX2RldiA9IGRldmljZV9maW5kX2NoaWxkKGRldmljZV9nZXRfcGFy
ZW50KGRldiksICJhY3BpX3BlcmYiLCAtMSk7CiAJaWYgKHBlcmZfZGV2ID09IE5VTEwgfHwg
IWRldmljZV9pc19hdHRhY2hlZChwZXJmX2RldikpCkBAIC0xMDk4LDE5ICsxMTAwLDM4IEBA
CiAJCWVycm9yID0gRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9Ci0JZm9yIChpID0gMDsgaSA8
IGNvdW50OyBpKyspIHsKKwlmb3IgKGkgPSAwLCBpZHggPSAwOyBpIDwgY291bnQ7IGkrKykg
ewogCQkvKgotCQkgKiBUT0RPOiBGaWd1cmUgb3V0IHZhbGlkaXR5IGNoZWNrcyBmb3IgaWQx
Ni4gIExpbnV4IGNoZWNrcwotCQkgKiB0aGF0IHRoZSBjb250cm9sIGFuZCBzdGF0dXMgdmFs
dWVzIG1hdGNoLgorCQkgKiBDb25maXJtIGlkMTYgdmFsdWUgaXMgY29ycmVjdC4KIAkJICov
Ci0JCXRhYmxlW2ldLmZyZXEgPSBzZXRzW2ldLmZyZXE7Ci0JCXRhYmxlW2ldLnZvbHRzID0g
c2V0c1tpXS52b2x0czsKLQkJdGFibGVbaV0uaWQxNiA9IHNldHNbaV0uc3BlY1swXTsKLQkJ
dGFibGVbaV0ucG93ZXIgPSBzZXRzW2ldLnBvd2VyOworCQlpZiAoc2V0c1tpXS5mcmVxID4g
MCkgeworCisJCQkvKiBzYXZlIGN1cnJlbnQgdmFsdWUgICovCisJCQllc3RfZ2V0X2lkMTYo
JnNhdmVkX2lkMTYpOworCisJCQkvKiAKKwkJCSAqIFRyeSB0byBzZXQgc3BlY2lmaWVkIHZh
bHVlIAorCQkJICovCisJCQllcnJvciA9IGVzdF9zZXRfaWQxNihzZXRzW2ldLnNwZWNbMF0s
IDEpOworCQkJaWYgKGVycm9yID09IDApIHsKKwkJCQlpZiAoYm9vdHZlcmJvc2UpIAorCQkJ
CQlwcmludGYoIkludmFsaWQgZnJlcSAldSwgaWdub3JlZC5cbiIsIAorCQkJCQkgICAgc2V0
c1tpXS5zcGVjWzBdKTsKKwkJCX0gZWxzZSB7CisJCQkJdGFibGVbaWR4XS5mcmVxID0gc2V0
c1tpXS5mcmVxOworCQkJCXRhYmxlW2lkeF0udm9sdHMgPSBzZXRzW2ldLnZvbHRzOworCQkJ
CXRhYmxlW2lkeF0uaWQxNiA9IHNldHNbaV0uc3BlY1swXTsKKwkJCQl0YWJsZVtpZHhdLnBv
d2VyID0gc2V0c1tpXS5wb3dlcjsKKwkJCQkrK2lkeDsKKwkJCX0KKworCQkJLyogcmVzdG9y
ZSBzYXZlZCBzZXR0aW5nICovCisJCQllc3Rfc2V0X2lkMTYoc2V0c1tpXS5zcGVjWzBdLCAw
KTsgCisJCX0KIAl9CiAKIAkvKiBNYXJrIGVuZCBvZiB0YWJsZSB3aXRoIGEgdGVybWluYXRv
ci4gKi8KLQliemVybygmdGFibGVbaV0sIHNpemVvZihmcmVxX2luZm8pKTsKKwliemVybygm
dGFibGVbaWR4XSwgc2l6ZW9mKGZyZXFfaW5mbykpOwogCiAJc2MtPmFjcGlfc2V0dGluZ3Mg
PSBUUlVFOwogCSpmcmVxcyA9IHRhYmxlOwpAQCAtMTE0OCw2ICsxMTY5LDQxIEBACiAJKmZy
ZXFzID0gcC0+ZnJlcXRhYjsKIAlyZXR1cm4gKDApOwogfQorc3RhdGljIHZvaWQKK2VzdF9n
ZXRfaWQxNih1aW50MTZfdCAqaWQxNl9wKSB7CisJKmlkMTZfcCA9IHJkbXNyKE1TUl9QRVJG
X1NUQVRVUykgJiAweGZmZmY7Cit9CisKK3N0YXRpYyBpbnQKK2VzdF9zZXRfaWQxNih1aW50
MTZfdCBpZDE2LCBpbnQgbmVlZF9jaGVjaykgeworCXVpbnQ2NF90IG1zcjsKKwl1aW50MTZf
dCBuZXdfaWQxNjsKKwlpbnQgcmMgPSAwOworCisJLyoKKwkgKiBUcnkgdG8gc2V0IGZyZXEu
CisJICovCisKKwkvKiBSZWFkIHRoZSBjdXJyZW50IHJlZ2lzdGVyLCBtYXNrIG91dCB0aGUg
b2xkLCBzZXQgdGhlIG5ldyBpZC4gKi8KKwltc3IgPSByZG1zcihNU1JfUEVSRl9DVEwpOwor
CW1zciA9IChtc3IgJiB+MHhmZmZmKSB8IGlkMTY7CisJd3Jtc3IoTVNSX1BFUkZfQ1RMLCBt
c3IpOworCisJLyogV2FpdCBhIHNob3J0IHdoaWxlIGZvciB0aGUgbmV3IHNldHRpbmcuICBY
WFggSXMgdGhpcyBuZWNlc3Nhcnk/ICovCisJREVMQVkoRVNUX1RSQU5TX0xBVCk7CisKKwlp
ZiAgKG5lZWRfY2hlY2spIHsKKwkJZXN0X2dldF9pZDE2KCZuZXdfaWQxNik7CQkKKwkJaWYg
KG5ld19pZDE2ICE9IGlkMTYpIHsKKwkJCWlmIChib290dmVyYm9zZSkgCisJCQkJcHJpbnRm
KCJJbnZhbGlkIGlkMTYgKHNldCwgY3VyKSA9ICgldSwgJXUpXG4iLCAKKwkJCQkgICAgaWQx
NiwgbmV3X2lkMTYpOworCQkJcmMgPSBFTlhJTzsgLyogQ2FuIG5vdCBzZXQgdGhpcyB2YWx1
ZSAqLworCQl9CisJfQorCisJcmV0dXJuIChyYyk7Cit9CiAKIHN0YXRpYyBmcmVxX2luZm8g
KgogZXN0X2dldF9jdXJyZW50KGZyZXFfaW5mbyAqZnJlcV9saXN0KQpAQCAtMTE2Miw3ICsx
MjE4LDcgQEAKIAkgKiB3ZSBnZXQgYSB0ZW1wb3JhcnkgaW52YWxpZCByZXN1bHQuCiAJICov
CiAJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewotCQlpZDE2ID0gcmRtc3IoTVNSX1BFUkZf
U1RBVFVTKSAmIDB4ZmZmZjsKKwkJZXN0X2dldF9pZDE2KCZpZDE2KTsKIAkJZm9yIChmID0g
ZnJlcV9saXN0OyBmLT5pZDE2ICE9IDA7IGYrKykgewogCQkJaWYgKGYtPmlkMTYgPT0gaWQx
NikKIAkJCQlyZXR1cm4gKGYpOwpAQCAtMTIwMSw3ICsxMjU3LDYgQEAKIHsKIAlzdHJ1Y3Qg
ZXN0X3NvZnRjICpzYzsKIAlmcmVxX2luZm8gKmY7Ci0JdWludDY0X3QgbXNyOwogCiAJLyog
RmluZCB0aGUgc2V0dGluZyBtYXRjaGluZyB0aGUgcmVxdWVzdGVkIG9uZS4gKi8KIAlzYyA9
IGRldmljZV9nZXRfc29mdGMoZGV2KTsKQEAgLTEyMTMsOSArMTI2OCw3IEBACiAJCXJldHVy
biAoRUlOVkFMKTsKIAogCS8qIFJlYWQgdGhlIGN1cnJlbnQgcmVnaXN0ZXIsIG1hc2sgb3V0
IHRoZSBvbGQsIHNldCB0aGUgbmV3IGlkLiAqLwotCW1zciA9IHJkbXNyKE1TUl9QRVJGX0NU
TCk7Ci0JbXNyID0gKG1zciAmIH4weGZmZmYpIHwgZi0+aWQxNjsKLQl3cm1zcihNU1JfUEVS
Rl9DVEwsIG1zcik7CisJZXN0X3NldF9pZDE2KGYtPmlkMTYsIDApOwogCiAJLyogV2FpdCBh
IHNob3J0IHdoaWxlIGZvciB0aGUgbmV3IHNldHRpbmcuICBYWFggSXMgdGhpcyBuZWNlc3Nh
cnk/ICovCiAJREVMQVkoRVNUX1RSQU5TX0xBVCk7Cg==
--------------020608060902050406020903--

>Release-Note:
>Audit-Trail:
>Unformatted:
 This is a multi-part message in MIME format.
 --------------020608060902050406020903
 Content-Type: text/plain; charset=ISO-2022-JP
 Content-Transfer-Encoding: 7bit
 


More information about the freebsd-bugs mailing list