Hello all,
I had a Pentium-4 based system running FreeBSD 7.0. 7.0 when installed when it was released; till 7.1 I did not perform any cvsup upgrade operations.
On 7.0 I had cpufreq enabled in kernel:
Additionally, powerd was enabled in /etc/rc.conf:
With those in place, my system cpu succesfully changed frequency, according to system load. Some dev.cpu variables are listed below:
Compared to the kernel I had in place, the only changes I did are the additions of the following lines:
Finally some more info from the running system:
And in the last lines lies my problem. After the switch to 7.1, my system can not switch operating frequencies. The "timecounter TSC..." errors fill up my system logs.
I can see that this line is produced by the tsc.c source file. From the same source code it seems that when the timecounter is TSC, frequency changes (by cpufreq for example) are prohibited. What buffles is me is why this used to work perfectly in 7.0! Was it that another clock source was used back then? BTW, ntpd had been running since the days this system had FreeBSD 4.0 on it... :\
Any information provided will be appreciated.
BTW, some sysctl values that might be useful:
I had a Pentium-4 based system running FreeBSD 7.0. 7.0 when installed when it was released; till 7.1 I did not perform any cvsup upgrade operations.
On 7.0 I had cpufreq enabled in kernel:
Code:
device cpufreq
Additionally, powerd was enabled in /etc/rc.conf:
Code:
powerd_enable="YES"
With those in place, my system cpu succesfully changed frequency, according to system load. Some dev.cpu variables are listed below:
Code:
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 374
dev.cpu.0.freq_levels: 2999/-1 2624/-1 2249/-1 1874/-1 1499/-1 1124/-1 749/-1 374/-1
dev.cpu.0.cx_supported: C1/0
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00%
Compared to the kernel I had in place, the only changes I did are the additions of the following lines:
Code:
options SCTP # Had it disabled in 7.0
Finally some more info from the running system:
Code:
# uname -a
mail[/root]# uname -a
FreeBSD my.rig 7.1-RELEASE-p2 FreeBSD 7.1-RELEASE-p2 #1: Wed Jan 21 08:42:14 EET 2009 root@my.rig:/usr/obj/usr/src/sys/FIRST i386
# dmesg
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.1-RELEASE-p2 #1: Wed Jan 21 08:42:14 EET 2009
root@my.rig:/usr/obj/usr/src/sys/FIRST
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3014.51-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf34 Stepping = 4
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x441d<SSE3,DTES64,MON,DS_CPL,CNXT-ID,xTPR>
Logical CPUs per core: 2
real memory = 1073676288 (1023 MB)
avail memory = 1041489920 (993 MB)
ACPI APIC Table: <GBT AWRDACPI>
ioapic0: Changing APIC ID to 2
ioapic0 <Version 2.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <GBT AWRDACPI> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, 3fef0000 (3) failed
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff,0x1000-0x10bf on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82865 host to AGP bridge> on hostb0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
vgapci0: <VGA-compatible display> mem 0xf8000000-0xf8ffffff,0xf0000000-0xf7ffffff irq 16 at device 0.0 on pci1
pci0: <serial bus, USB> at device 29.0 (no driver attached)
pci0: <serial bus, USB> at device 29.1 (no driver attached)
pci0: <serial bus, USB> at device 29.2 (no driver attached)
pci0: <serial bus, USB> at device 29.3 (no driver attached)
pci0: <serial bus, USB> at device 29.7 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib2
skc0: <Marvell Gigabit Ethernet> port 0x9000-0x90ff mem 0xfb000000-0xfb003fff irq 20 at device 9.0 on pci2
skc0: Marvell Yukon Lite Gigabit Ethernet rev. A3(0x7)
sk0: <Marvell Semiconductor, Inc. Yukon> on skc0
sk0: Ethernet address: 00:0f:ea:5b:03:39
miibus0: <MII bus> on sk0
e1000phy0: <Marvell 88E1011 Gigabit PHY> PHY 0 on miibus0
e1000phy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
skc0: [ITHREAD]
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH5 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio0: [FILTER]
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
cpu0: <ACPI CPU> on acpi0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
pmtimer0 on isa0
orm0: <ISA Option ROM> at iomem 0xc0000-0xcf7ff pnpid ORM0000 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
Timecounter "TSC" frequency 3014505900 Hz quality 800
Timecounters tick every 1.000 msec
ad0: 19092MB <WDC WD200BB-00CFC0 02.08B02> at ata0-master UDMA100
acd0: CDRW <SONY CD-RW CRX230ED/4YS1> at ata1-master UDMA33
Trying to mount root from ufs:/dev/ad0s1a
sk0: link state changed to UP
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
timecounter TSC must not be in use when changing frequencies; change denied
And in the last lines lies my problem. After the switch to 7.1, my system can not switch operating frequencies. The "timecounter TSC..." errors fill up my system logs.
I can see that this line is produced by the tsc.c source file. From the same source code it seems that when the timecounter is TSC, frequency changes (by cpufreq for example) are prohibited. What buffles is me is why this used to work perfectly in 7.0! Was it that another clock source was used back then? BTW, ntpd had been running since the days this system had FreeBSD 4.0 on it... :\
Any information provided will be appreciated.
BTW, some sysctl values that might be useful:
Code:
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 2999
dev.cpu.0.freq_levels: 2999/-1 2624/-1 2249/-1 1874/-1 1499/-1 1124/-1 749/-1 374/-1
dev.cpu.0.cx_supported: C1/0
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00%
kern.timecounter.tick: 1
kern.timecounter.choice: TSC(800) i8254(0) dummy(-1000000)
kern.timecounter.hardware: TSC
kern.timecounter.nsetclock: 3
kern.timecounter.ngetmicrotime: 552744
kern.timecounter.ngetnanotime: 1
kern.timecounter.ngetbintime: 0
kern.timecounter.ngetmicrouptime: 9863325
kern.timecounter.ngetnanouptime: 54953
kern.timecounter.ngetbinuptime: 356852
kern.timecounter.nmicrotime: 1280093
kern.timecounter.nnanotime: 20733
kern.timecounter.nbintime: 1324404
kern.timecounter.nmicrouptime: 5337
kern.timecounter.nnanouptime: 3473
kern.timecounter.nbinuptime: 2786031
kern.timecounter.stepwarnings: 0
kern.timecounter.tc.i8254.mask: 65535
kern.timecounter.tc.i8254.counter: 20726
kern.timecounter.tc.i8254.frequency: 1193182
kern.timecounter.tc.i8254.quality: 0
kern.timecounter.tc.TSC.mask: 4294967295
kern.timecounter.tc.TSC.counter: 2941560308
kern.timecounter.tc.TSC.frequency: 3014505900
kern.timecounter.tc.TSC.quality: 800
dev.acpi.0.%desc: GBT AWRDACPI
dev.acpi.0.%driver: acpi
dev.acpi.0.%parent: nexus0