On Sun, Dec 14, 2014 at 02:00:08PM -0800, Philip Guenther wrote:
>
> Some time ago, I had added support for using the MWAIT instruction in the
> idle loop. Various people found that made their boxes run hot, to the
> point that several developers diked it out of their own builds; I've
> committed one of those yesteryad pending a proper fix.
>
> So, to start on that: the diff below expands our handling of the ACPI _CST
> values to detect the Intel "functional fixed hardware" register type for
> C-state control and report it in the acpicpu dmesg lines, ala:
>
> acpicpu0 at acpi0: C3, C2, C1(mwait), PSS
>
> I have diff on top of this that adds callbacks and amd64 bits to properly
> notify CPUs of the C1 type and thus enable mwait use if the _CST specifies
> it, but let's first see if the _CST output matches our expectations.
>
>
> IN PARTICULAR, IF YOUR BOX RAN HOT WITH MWAIT, please run with this diff
> report your dmesg!
>
Since mwait was enabled, my laptop ran with about 5C-10C more than before
(I always run with `apm -L' except when I am impatient with something
big to compile).
As requested, a dmesg with your diff. Below there's the diff to the
dmesg of a kernel compiled from the same sources, but without your patch.
OpenBSD 5.6-current (GENERIC.MP) #319: Mon Dec 15 07:11:49 CET 2014
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2634596352 (2512MB)
avail mem = 2560667648 (2442MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0000 (37 entries)
bios0: vendor Apple Inc. version "MB21.88Z.00A5.B07.0706270922" date 06/27/07
bios0: Apple Inc. MacBook2,1
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP HPET APIC MCFG ASF! SBST ECDT SSDT SSDT SSDT
acpi0: wakeup devices ADP1(S3) LID0(S3) PXS1(S4) PXS2(S4) USB1(S3) USB2(S3)
USB3(S3) USB4(S3) USB7(S3) EC__(S3)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1995.35 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF
cpu0: 4MB 64b/line 16-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 166MHz
cpu0: mwait min=64, max=64, C-substates=0.2.2.2.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1994.99 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF
cpu1: 4MB 64b/line 16-way L2 cache
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 0, remapped to apid 1
acpimcfg0 at acpi0 addr 0xf0000000, bus 0-255
acpiec0 at acpi0
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (RP01)
acpiprt2 at acpi0: bus 2 (RP02)
acpiprt3 at acpi0: bus 3 (PCIB)
acpicpu0 at acpi0: C3, C2, C1(mwait), PSS
acpicpu1 at acpi0: C3, C2, C1(mwait), PSS
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: LID0
acpibtn1 at acpi0: PWRB
acpibtn2 at acpi0: SLPB
acpibat0 at acpi0: BAT0 model "15253732082930497" type 15253732284385612 oem
"15253732284387396"
acpivideo0 at acpi0: GFX0
cpu0: Enhanced SpeedStep 1995 MHz: speeds: 2000, 1833, 1667, 1500, 1333, 1000
MHz
memory map conflict 0x9ef00000/0x100000
memory map conflict 0x9f000000/0x1000000
memory map conflict 0xf00f8000/0x1000
memory map conflict 0xfed1c000/0x4000
memory map conflict 0xfffb0000/0x30000
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82945GM Host" rev 0x03
vga1 at pci0 dev 2 function 0 "Intel 82945GM Video" rev 0x03
intagp0 at vga1
agp0 at intagp0: aperture at 0xa0000000, size 0x10000000
inteldrm0 at vga1
drm0 at inteldrm0
drm: Setting output timings on SDVOB failed
inteldrm0: 1280x800
wsdisplay0 at vga1 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
"Intel 82945GM Video" rev 0x03 at pci0 dev 2 function 1 not configured
vendor "Intel", unknown product 0x27a3 (class DASP subclass Time and Frequency,
rev 0x03) at pci0 dev 7 function 0 not configured
azalia0 at pci0 dev 27 function 0 "Intel 82801GB HD Audio" rev 0x02: msi
azalia0: codecs: Sigmatel STAC9220/1
audio0 at azalia0
ppb0 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x02: msi
pci1 at ppb0 bus 1
mskc0 at pci1 dev 0 function 0 "Marvell Yukon 88E8053" rev 0x22, Yukon-2 EC
rev. A3 (0x2): apic 1 int 16
msk0 at mskc0 port A: address 00:19:e3:38:6c:56
eephy0 at msk0 phy 0: 88E1111 Gigabit PHY, rev. 2
ppb1 at pci0 dev 28 function 1 "Intel 82801GB PCIE" rev 0x02: msi
pci2 at ppb1 bus 2
athn0 at pci2 dev 0 function 0 "Atheros AR5418" rev 0x01: apic 1 int 17
athn0: MAC AR5418 rev 2, RF AR5133 (2T3R), ROM rev 4, address 00:1b:63:02:1c:22
uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x02: apic 1 int 21
uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x02: apic 1 int 19
uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x02: apic 1 int 18
uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x02: apic 1 int 16
ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x02: apic 1 int 21
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xe2
pci3 at ppb2 bus 3
"AT&T/Lucent FW322 1394" rev 0x61 at pci3 dev 3 function 0 not configured
pcib0 at pci0 dev 31 function 0 "Intel 82801GBM LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801GB IDE" rev 0x02: DMA, channel 0
configured to compatibility, channel 1 configured to compatibility
atapiscsi0 at pciide0 channel 0 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <MATSHITA, DVD-R UJ-857D, KBVB> ATAPI 5/cdrom
removable
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4
pciide0: channel 1 disabled (no drives)
pciide1 at pci0 dev 31 function 2 "Intel 82801GBM SATA" rev 0x02: DMA, channel
0 configured to native-PCI, channel 1 configured to native-PCI
pciide1: using apic 1 int 19 for native-PCI interrupt
wd0 at pciide1 channel 0 drive 1: <TOSHIBA MK1234GSX>
wd0: 16-sector PIO, LBA48, 114473MB, 234441648 sectors
wd0(pciide1:0:1): using PIO mode 4, Ultra-DMA mode 5
ichiic0 at pci0 dev 31 function 3 "Intel 82801GB SMBus" rev 0x02: apic 1 int 19
iic0 at ichiic0
iic0: addr 0x48 00=3b 01=00 02=4b 03=50 words 00=3b80 01=00ff 02=4b00 03=5000
04=ffff 05=ffff 06=ffff 07=ffff
spdmem0 at iic0 addr 0x50: 2GB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
spdmem1 at iic0 addr 0x52: 512MB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci2: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci3: USB revision 1.0
uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
render error detected, EIR: 0x00000010
page table error
PGTBL_ER: 0x00000102
error: [drm:pid0:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010,
masking
render error detected, EIR: 0x00000010
page table error
PGTBL_ER: 0x00000102
uhub5 at uhub0 port 1 "Genesys Logic USB2.0 Hub" rev 2.00/32.98 addr 2
uhub6 at uhub5 port 1 "Apple, Inc. Keyboard Hub" rev 2.00/94.15 addr 3
uhidev0 at uhub6 port 2 configuration 1 interface 0 "Apple, Inc Apple Keyboard"
rev 2.00/0.69 addr 4
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 5 key codes, country code 13
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uhidev1 at uhub6 port 2 configuration 1 interface 1 "Apple, Inc Apple Keyboard"
rev 2.00/0.69 addr 4
uhidev1: iclass 3/0
uhid0 at uhidev1: input=1, output=0, feature=0
uhidev2 at uhub6 port 3 configuration 1 interface 0 "Logitech USB Optical
Mouse" rev 2.00/43.01 addr 5
uhidev2: iclass 3/1
ums0 at uhidev2: 8 buttons, Z dir
wsmouse0 at ums0 mux 0
uvideo0 at uhub0 port 4 configuration 1 interface 0 "Micron Built-in iSight"
rev 2.00/1.84 addr 6
video0 at uvideo0
uhidev3 at uhub1 port 2 configuration 1 interface 0 "Apple Computer Apple
Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev3: iclass 3/1
ukbd1 at uhidev3: 8 variable keys, 5 key codes, country code 13
wskbd1 at ukbd1 mux 1
wskbd1: connecting to wsdisplay0
uhidev4 at uhub1 port 2 configuration 1 interface 1 "Apple Computer Apple
Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev4: iclass 3/1, 5 report ids
ums1 at uhidev4 reportid 2: 3 buttons
wsmouse1 at ums1 mux 0
ums2 at uhidev4 reportid 5
ums2: mouse has no X report
uhidev5 at uhub1 port 2 configuration 1 interface 2 "Apple Computer Apple
Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev5: iclass 3/0
uhid1 at uhidev5: input=1, output=0, feature=0
uhidev6 at uhub3 port 2 configuration 1 interface 0 "Apple Computer, Inc. IR
Receiver" rev 2.00/1.10 addr 2
uhidev6: iclass 3/0, 38 report ids
uhid2 at uhidev6 reportid 36: input=4, output=0, feature=0
uhid3 at uhidev6 reportid 37: input=4, output=0, feature=0
uhid4 at uhidev6 reportid 38: input=4, output=0, feature=0
uhidev7 at uhub4 port 1 configuration 1 interface 0 "Apple Computer HID-proxy"
rev 2.00/19.65 addr 2
uhidev7: iclass 3/1
ukbd2 at uhidev7: 8 variable keys, 6 key codes
wskbd2 at ukbd2 mux 1
wskbd2: connecting to wsdisplay0
uhidev8 at uhub4 port 1 configuration 1 interface 1 "Apple Computer HID-proxy"
rev 2.00/19.65 addr 2
uhidev8: iclass 3/1
ums3 at uhidev8: 5 buttons
wsmouse2 at ums3 mux 0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
sd0 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 005> SCSI2 0/direct fixed
sd0: 114470MB, 512 bytes/sector, 234435953 sectors
root on sd0a (aee63bc24d6d3bf5.a) swap on sd0b dump on sd0b
--- dmesg_141215_0723 Mon Dec 15 07:23:42 2014
+++ dmesg_141215_0721 Mon Dec 15 07:21:32 2014
@@ -1,7 +1,7 @@
-OpenBSD 5.6-current (GENERIC.MP) #319: Mon Dec 15 07:11:49 CET 2014
+OpenBSD 5.6-current (GENERIC.MP) #318: Mon Dec 15 07:08:43 CET 2014
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2634596352 (2512MB)
-avail mem = 2560667648 (2442MB)
+avail mem = 2560671744 (2442MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
@@ -16,7 +16,7 @@ acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
-cpu0: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1995.35 MHz
+cpu0: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1995.27 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF
cpu0: 4MB 64b/line 16-way L2 cache
cpu0: smt 0, core 0, package 0
@@ -24,7 +24,7 @@ mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed
cpu0: apic clock running at 166MHz
cpu0: mwait min=64, max=64, C-substates=0.2.2.2.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
-cpu1: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1994.99 MHz
+cpu1: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz, 1995.00 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF
cpu1: 4MB 64b/line 16-way L2 cache
cpu1: smt 0, core 1, package 0
@@ -36,8 +36,8 @@ acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (RP01)
acpiprt2 at acpi0: bus 2 (RP02)
acpiprt3 at acpi0: bus 3 (PCIB)
-acpicpu0 at acpi0: C3, C2, C1(mwait), PSS
-acpicpu1 at acpi0: C3, C2, C1(mwait), PSS
+acpicpu0 at acpi0: C3, C2, C1, PSS
+acpicpu1 at acpi0: C3, C2, C1, PSS
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: LID0
acpibtn1 at acpi0: PWRB
@@ -99,7 +99,7 @@ wd0: 16-sector PIO, LBA48, 114473MB, 234441648 sectors
wd0(pciide1:0:1): using PIO mode 4, Ultra-DMA mode 5
ichiic0 at pci0 dev 31 function 3 "Intel 82801GB SMBus" rev 0x02: apic 1 int 19
iic0 at ichiic0
-iic0: addr 0x48 00=3b 01=00 02=4b 03=50 words 00=3b80 01=00ff 02=4b00 03=5000
04=ffff 05=ffff 06=ffff 07=ffff
+iic0: addr 0x48 00=3c 01=00 02=4b 03=50 words 00=3c00 01=00ff 02=4b00 03=5000
04=ffff 05=ffff 06=ffff 07=ffff
spdmem0 at iic0 addr 0x50: 2GB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
spdmem1 at iic0 addr 0x52: 512MB DDR2 SDRAM non-parity PC2-5300CL5 SO-DIMM
usb1 at uhci0: USB revision 1.0