Re: AMD Family 10h cpufreq driver

From: fluffles.net <bsd_at_fluffles.net>
Date: Tue, 23 Sep 2008 05:17:20 +0200
Hi G. Otsuji,

I have followed your instructions on my 8-CURRENT amd64 system with
Phenom 9350e CPU. I have built a kernel without cpufreq, so i can use
the seperate module. Once i load the module i get this, with and without
verbose logging enabled:

--
[root_at_test ~]# uname -a
FreeBSD test 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Tue Sep 23 10:27:59 UTC
2008     root_at_test:/usr/obj/usr/src/sys/TEST  amd64

[root_at_test ~]# kldload /boot/kernel/cpufreq.ko
pstate0: <Cool`n'Quiet 2.0> on cpu0
device_attach: pstate0 attach returned 19
pstate1: <Cool`n'Quiet 2.0> on cpu1
device_attach: pstate1 attach returned 19
pstate2: <Cool`n'Quiet 2.0> on cpu2
device_attach: pstate2 attach returned 19
pstate3: <Cool`n'Quiet 2.0> on cpu3
device_attach: pstate3 attach returned 19
--

So it appears not to work, but then i'm using a different CPU than you,
an 9350e (65W TDP only but quadcore 2GHz). Here's a snippet from dmesg
about CPU features, if its any helpful:

--
Calibrating TSC clock ... TSC clock: 2000015706 Hz
CPU: AMD Phenom(tm) 9350e Quad-Core Processor (2000.02-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0x100f23  Stepping = 3
 
Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x802009<SSE3,MON,CX16,POPCNT>
  AMD
Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!>
  AMD
Features2=0x7ff<LAHF,CMP,SVM,ExtAPIC,CR8,<b5>,<b6>,<b7>,Prefetch,<b9>,<b10>>
  Cores per package: 4
--

I want to mention i'm using amd64, do your intructions account for that?
Because i see a i386 directory, although if i see some stuff about amd64
in the makefile that suggests it also uses that directory. Just want a
confirmation from you that this is not a problem.

I have enabled Cool'N'Quiet in BIOS by setting it to Auto (other option
is disabled). There is also a "CPU C1E Feature" setting. Some description:

--
From: http://www.xbitlabs.com/articles/cpu/display/amd-phenom_3.html

Cool’nQuiet technology in Phenom processors got to a completely new
level, too. Now they call it Cool’n’Quiet 2.0. It allows to
independently adjust the power consumption and frequency of all four
processor cores and memory controller.

Moreover, Phenom also supports C1E state that takes place for the
processor after a few milliseconds of idling. In this case the CPU not
only drops down its clock speed, but also reduces the HyperTransport and
system bus power consumption.

Another new and pretty interesting feature of the Cool’n’Quiet 2.0
technology is the ability of the CPU voltage regulator to receive data
on the current power-saving CPU mode. Theoretically, it allows adjusting
the voltage regulator circuitry parameters interactively depending on
the processor operational conditions. I believe that mainboard
developers will be able to implement corresponding algorithms in their
solutions.

--
From: http://lwn.net/Articles/286432/

AMD CPUs with C1E support are currently excluded from high resolution
timers and NOHZ support. The reason is that C1E is a BIOS controlled
C3 power state which switches off TSC and the local APIC timer. The
ACPI C-State control manages the TSC/local APIC timer wreckage, but
this does not include the C1 based ("halt" instruction) C1E mode. The
BIOS/SMM controlled C1E state works on most systems even without
enabling ACPI C-State control.

--


Any change of getting these technologies working on FreeBSD? The C1E
seems to be a seperate feature of Cool'N'Quiet 2, can you confirm that?
Any features your driver cannot use yet but is offered by the hardware?

Any help you can offer is greatly appreciated.

Regards,
Veronica



G.Otsuji wrote:
> Hi Veronica,
>
> Thank you for your response.
> I doesn't know that the attached source was scrubbed in this mailing list.
> the url is
> http://lists.freebsd.org/pipermail/freebsd-current/attachments/20080907/e98020fd/pstate.obj
> this is pstate.c
> and copy pstate.c to /sys/i386/cpufreq/ ,
> and cd /sys/module/cpufreq/ ,
> and patch  ,
>
> --- Makefile.orig	2008-09-19 21:48:58.000000000 +0900
> +++ Makefile	2008-09-19 21:49:08.000000000 +0900
> _at__at_ -12,7 +12,7 _at__at_
>  CFLAGS+= -I${.CURDIR}/../../contrib/dev/acpica
>  
>  SRCS+=	acpi_if.h opt_acpi.h
> -SRCS+=	est.c p4tcc.c powernow.c
> +SRCS+=	est.c p4tcc.c powernow.c pstate.c
>  .endif
>  
>  .if ${MACHINE} == "i386"
>
> and make ; make install ; and kldload cpufreq;
>
> be careful that ,before down clock, umonut as much as possible and sync sync.
> because I experienced that kernel panic or forced reset.
> If you get such case, mail to me agin.
>
> psatete.c is not powernow.c 's pstate. I'd like to rather renmae hwpstate.c .
> MSR is differnt ...and etc....
>
> Have a nice day and hopefully enjoy!
>
> Cheers,
> G. Otsuji <annona2_at_gmail.com>
>
> Veronica wrote:
>   
>> Hi G. Otsuji,
>>
>> This is great news, i've bought a Phenom X9350e to power my new high-end
>> NAS. I'm very keen on testing this driver module.
>>
>> Only question: how do i compile & install? If you could give me some
>> pointers that would be great.
>>
>> Regards,
>> Veronica
>>     
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
>   
Received on Tue Sep 23 2008 - 01:14:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:35 UTC