Subject: Re: experiences with recent -current
To: None <current-users@netbsd.org>
From: None <fukumoto@imasy.or.jp>
List: current-users
Date: 03/31/2007 19:43:55
>> > Updated to powernow.h:1.9 and powernow_k8.c:1.17, but no change as far
>> > as I can tell.  sysctl -w machdep.powernow.target=1000, and
>> > immediately the machine shuts down itself, no ddb, no message, just
>> > power off.

Reading through the code,
In WRITE_FIDVID macro of powernow_k8.c:1.17 , mcb.msr_read is not
initialized.  Clearing mcb.msr_read fixes the crash problem.  Though I
haven't tried multiprocessor yet.

Also, WRITE_FIDVID broadcasts to each processor, but READ_PENDING_WAIT
is not, which looks iffy.



						FUKUMOTO Atsushi
						fukumoto@imasy.or.jp


Index: powernow_k8.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/powernow_k8.c,v
retrieving revision 1.17
diff -u -u -r1.17 powernow_k8.c
--- powernow_k8.c	24 Mar 2007 15:35:15 -0000	1.17
+++ powernow_k8.c	31 Mar 2007 10:36:37 -0000
@@ -86,6 +86,7 @@
 #include <machine/bus.h>
 
 #define WRITE_FIDVID(fid, vid, ctrl)		\
+	mcb.msr_read = 0;			\
 	mcb.msr_value = (((ctrl) << 32) | (1ULL << 16) | ((vid) << 8) | (fid)); \
 	mcb.msr_type = MSR_AMDK7_FIDVID_CTL;	\
 	msr_cpu_broadcast(&mcb);