Bug 104678

Summary: [patch] SMP not working on Turion XP Laptop
Product: Base System Reporter: Dan Olson <danolson>
Component: i386Assignee: Ariff Abdullah <ariff>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 6.2-PRERELEASE   
Hardware: Any   
OS: Any   

Description Dan Olson 2006-10-22 18:00:39 UTC
SMP doesn't work on a new Turion X2 laptop. The laptop is an HP dv6119us.

Laptop appears to act normally by entering set hint.apic.0.disabled=1 at
the loader prompt.

When that is not set, the Laptop appears to lock up but accepts keyboard
input. It won't display for about 10 seconds unless more keys are press.
If no keys are pressed it doesn't display the input.

I haven't been able to capture a vmstat -i or the sysctl values for
hw.acpi but will try.

I've compiled in the debugger and will try to capture more output from
it. When breaking to the debugger this is output:

KDB: enter: manual  escape to debugger
[thread pid 19 tid 100025]
Stopped at 0xc06905ff = kdb_enter+0x2b: nop

Doing a ps gives this for pid 19

19  0  0  0  RL    CPU0 [swi6: Giant taskq]

I don't know if that is important. It is my first time using this debugger.

Below is the verbose dmesg output that I was capture:


Copyright (c) 1992-2006 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 6.2-PRERELEASE #0: Sun Oct 22 10:00:30 CDT 2006
    olson@tron.danolson.dsl.visi.com:/usr/obj/usr/src/sys/TRON
WARNING: WITNESS option enabled, expect reduced performance.
WARNING: DIAGNOSTIC option enabled, expect reduced performance.
Preloaded elf kernel "/boot/kernel/kernel" at 0xc107a000.
Preloaded elf module "/boot/kernel/linux.ko" at 0xc107a1d0.
Preloaded elf module "/boot/modules/nvidia.ko" at 0xc107a27c.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc107a328.
Calibrating clock(s) ... i8254 clock: 1193262 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 1607328579 Hz
CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-50 (1607.33-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x40f82  Stepping = 2
  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=0x2001<SSE3,CX16>
  AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow+,3DNow>
  AMD Features2=0x1f<LAHF,CMP,<b2>,<b3>,CR8>
    HTT bit cleared - FreeBSD does not have licensing issues requiring it.

  Cores per package: 2
Data TLB: 32 entries, fully associative
Instruction TLB: 32 entries, fully associative
L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L2 internal cache: 256 kbytes, 64 bytes/line, 1 lines/tag, 8-way associative
real memory  = 1039138816 (991 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009cfff, 638976 bytes (156 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000001428000 - 0x000000003cd4bfff, 999440384 bytes (244004 pages)
avail memory = 998699008 (952 MB)
bios32: Found BIOS32 Service Directory header at 0xc00f8a10
bios32: Entry = 0xfdcf4 (c00fdcf4)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0xfdcf0+0x0
pnpbios: Found PnP BIOS data at 0xc00f8a60
pnpbios: Entry = e768:9621  Rev = 1.0
Other BIOS signatures found:
wlan: <802.11 Link Layer>
ath_rate: version 1.2 <SampleRate bit-rate selection algorithm>
random: <entropy source, Software, Yarrow>
nfslock: pseudo-device
io: <I/O>
kbd: new array size 4
kbd1 at kbdmux0
mem: <memory>
Pentium Pro MTRR support enabled
null: <null device, zero device>
ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
WITNESS: spin lock hptlock not in order list
rr232x: RocketRAID 232x controller driver v1.02 (Oct 22 2006 10:00:11)
npx0: INT 16 interface
acpi0: <HP   RSDT> on motherboard
acpi0: [MPSAFE]
pci_open(1):	mode 1 addr port (0x0cf8) is 0x80007004
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=050000] [hdr=80] is there (id=02f010de)
pcibios: BIOS_PRESENT call failed
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 0
acpi0: Power Button (fixed)
acpi0: wakeup code va 0xd90a4000 pa 0x9c000
atpic: Programming IRQ9 as level/low
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 0
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 1
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 1
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 1
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: bus 0 dev 10 func 1
ACPI timer: 1/2 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x10> port 0x62,0x66 on acpi0
pci_link0: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link0: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link0: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link1: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link1: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link1: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link2: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link2: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link2: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link3: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link3: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link3: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link4: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link4: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link4: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link5: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link5: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link5: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link6: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link6: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link6: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link7: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link7: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link7: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link8: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link8: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link8: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link9: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link9: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link9: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link10: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link10: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   11   N     0  5 7 9 10 11 14 15
pci_link10: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link11: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0    7   N     0  5 7 9 10 11 14 15
pci_link11: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0    7   N     0  5 7 9 10 11 14 15
pci_link11: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link12: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link12: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link12: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link13: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link13: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link13: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link14: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link14: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link14: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link15: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link15: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link15: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link16: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link16: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link16: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link17: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0    5   N     0  5 7 9 10 11 14 15
pci_link17: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0    5   N     0  5 7 9 10 11 14 15
pci_link17: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
pci_link18: Links after initial probe:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link18: Links after initial validation:
Index  IRQ  Rtd  Ref  IRQs
    0   10   N     0  5 7 9 10 11 14 15
pci_link18: Links after disable:
Index  IRQ  Rtd  Ref  IRQs
    0  255   N     0  5 7 9 10 11 14 15
cpu0: <ACPI CPU> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
ACPI: Found matching pin for 0.10.INTA at func 1: 10
ACPI: Found matching pin for 0.10.INTB at func 3: 10
ACPI: Found matching pin for 0.11.INTA at func 0: 11
ACPI: Found matching pin for 0.11.INTB at func 1: 7
ACPI: Found matching pin for 0.20.INTA at func 0: 10
ACPI: Found matching pin for 0.16.INTB at func 1: 11
ACPI: Found matching pin for 0.14.INTA at func 0: 5
ACPI: Found matching pin for 0.5.INTA at func 0: 11
pci0: <ACPI PCI bus> on pcib0
pci0: physical bus=0
found->	vendor=0x10de, dev=0x02f0, revid=0xa2
	bus=0, slot=0, func=0
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0006, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02fa, revid=0xa2
	bus=0, slot=0, func=1
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0100, statreg=0x4020, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02fe, revid=0xa2
	bus=0, slot=0, func=2
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0020, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02f8, revid=0xa2
	bus=0, slot=0, func=3
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x00a0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02f9, revid=0xa2
	bus=0, slot=0, func=4
	class=05-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x00a0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02ff, revid=0xa2
	bus=0, slot=0, func=5
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0006, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x027f, revid=0xa2
	bus=0, slot=0, func=6
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0100, statreg=0x0020, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x027e, revid=0xa2
	bus=0, slot=0, func=7
	class=05-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0020, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02fc, revid=0xa1
	bus=0, slot=2, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x02fd, revid=0xa1
	bus=0, slot=3, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x0244, revid=0xa2
	bus=0, slot=5, func=0
	class=03-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0007, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message, 64 bit
	map[10]: type 1, range 32, base b2000000, size 24, enabled
	map[14]: type 3, range 64, base c0000000, size 28, enabled
	map[1c]: type 1, range 64, base b1000000, size 24, enabled
pcib0: matched entry for 0.5.INTA (src \\_SB_.PCI0.LK3E:0)
pcib0: slot 5 INTA routed to irq 11 via \\_SB_.PCI0.LK3E
found->	vendor=0x10de, dev=0x0270, revid=0xa2
	bus=0, slot=9, func=0
	class=05-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x10de, dev=0x0260, revid=0xa3
	bus=0, slot=10, func=0
	class=06-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x000f, statreg=0x00a0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[10]: type 4, range 32, base 00001d00, size  7, enabled
found->	vendor=0x10de, dev=0x0264, revid=0xa3
	bus=0, slot=10, func=1
	class=0c-05-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0001, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=10
	powerspec 2  supports D0 D3  current D0
	map[20]: type 4, range 32, base 00003040, size  6, enabled
	map[24]: type 4, range 32, base 00003000, size  6, enabled
pcib0: matched entry for 0.10.INTA (src \\_SB_.PCI0.LSMB:0)
pcib0: slot 10 INTA routed to irq 10 via \\_SB_.PCI0.LSMB
found->	vendor=0x10de, dev=0x0271, revid=0xa3
	bus=0, slot=10, func=3
	class=0b-40-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0006, statreg=0x00a0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x01 (250 ns)
	intpin=b, irq=10
	map[10]: type 1, range 32, base b0040000, size 18, enabled
pcib0: matched entry for 0.10.INTB (src \\_SB_.PCI0.LPMU:0)
pcib0: slot 10 INTB routed to irq 10 via \\_SB_.PCI0.LPMU
found->	vendor=0x10de, dev=0x026d, revid=0xa3
	bus=0, slot=11, func=0
	class=0c-03-10, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x01 (250 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b0004000, size 12, enabled
pcib0: matched entry for 0.11.INTA (src \\_SB_.PCI0.LUS0:0)
pcib0: slot 11 INTA routed to irq 11 via \\_SB_.PCI0.LUS0
found->	vendor=0x10de, dev=0x026e, revid=0xa3
	bus=0, slot=11, func=1
	class=0c-03-20, hdrtype=0x00, mfdev=1
	cmdreg=0x0006, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x01 (250 ns)
	intpin=b, irq=7
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b0005000, size  8, enabled
pcib0: matched entry for 0.11.INTB (src \\_SB_.PCI0.LUS2:0)
pcib0: slot 11 INTB routed to irq 7 via \\_SB_.PCI0.LUS2
found->	vendor=0x10de, dev=0x0265, revid=0xf1
	bus=0, slot=13, func=0
	class=01-01-8a, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x01 (250 ns)
	powerspec 2  supports D0 D3  current D0
	map[20]: type 4, range 32, base 00003080, size  4, enabled
found->	vendor=0x10de, dev=0x0266, revid=0xf1
	bus=0, slot=14, func=0
	class=01-01-85, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x01 (250 ns)
	intpin=a, irq=5
	powerspec 2  supports D0 D3  current D0
	MSI supports 4 messages, 64 bit
	map[10]: type 4, range 32, base 000030c0, size  3, enabled
	map[14]: type 4, range 32, base 000030b4, size  2, enabled
	map[18]: type 4, range 32, base 000030b8, size  3, enabled
	map[1c]: type 4, range 32, base 000030b0, size  2, enabled
	map[20]: type 4, range 32, base 00003090, size  4, enabled
	map[24]: type 1, range 32, base b0006000, size 12, memory disabled
pcib0: matched entry for 0.14.INTA (src \\_SB_.PCI0.LTID:0)
pcib0: slot 14 INTA routed to irq 5 via \\_SB_.PCI0.LTID
found->	vendor=0x10de, dev=0x026f, revid=0xa2
	bus=0, slot=16, func=0
	class=06-04-01, hdrtype=0x01, mfdev=1
	cmdreg=0x0107, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x02 (500 ns)
found->	vendor=0x10de, dev=0x026c, revid=0xa2
	bus=0, slot=16, func=1
	class=04-03-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0006, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x02 (500 ns), maxlat=0x05 (1250 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message, 64 bit, vector masks
	map[10]: type 1, range 32, base b0000000, size 14, enabled
pcib0: matched entry for 0.16.INTB (src \\_SB_.PCI0.LAZA:0)
pcib0: slot 16 INTB routed to irq 11 via \\_SB_.PCI0.LAZA
found->	vendor=0x10de, dev=0x0269, revid=0xa3
	bus=0, slot=20, func=0
	class=06-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0007, statreg=0x00b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x01 (250 ns), maxlat=0x14 (5000 ns)
	intpin=a, irq=10
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b0008000, size 12, enabled
	map[14]: type 4, range 32, base 000030e0, size  3, enabled
pcib0: matched entry for 0.20.INTA (src \\_SB_.PCI0.LMAC:0)
pcib0: slot 20 INTA routed to irq 10 via \\_SB_.PCI0.LMAC
found->	vendor=0x1022, dev=0x1100, revid=0x00
	bus=0, slot=24, func=0
	class=06-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1022, dev=0x1101, revid=0x00
	bus=0, slot=24, func=1
	class=06-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1022, dev=0x1102, revid=0x00
	bus=0, slot=24, func=2
	class=06-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1022, dev=0x1103, revid=0x00
	bus=0, slot=24, func=3
	class=06-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
pci0: <memory, RAM> at device 0.0 (no driver attached)
pci0: <memory, RAM> at device 0.1 (no driver attached)
pci0: <memory, RAM> at device 0.2 (no driver attached)
pci0: <memory, RAM> at device 0.3 (no driver attached)
pci0: <memory, RAM> at device 0.4 (no driver attached)
pci0: <memory, RAM> at device 0.5 (no driver attached)
pci0: <memory, RAM> at device 0.6 (no driver attached)
pci0: <memory, RAM> at device 0.7 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pcib1:   secondary bus     1
pcib1:   subordinate bus   1
pcib1:   I/O decode        0x4000-0x4fff
pcib1:   memory decode     0xb3000000-0xb31fffff
pcib1:   prefetched decode 0xd0000000-0xd01fffff
pci1: <ACPI PCI bus> on pcib1
pci1: physical bus=1
pcib2: <ACPI PCI-PCI bridge> at device 3.0 on pci0
pcib2:   secondary bus     3
pcib2:   subordinate bus   3
pcib2:   I/O decode        0xf000-0xfff
pcib2:   memory decode     0xb3200000-0xb33fffff
pcib2:   prefetched decode 0xfff00000-0xfffff
ACPI: Found matching pin for 3.0.INTA at func 0: 255
pci3: <ACPI PCI bus> on pcib2
pci3: physical bus=3
found->	vendor=0x14e4, dev=0x4311, revid=0x01
	bus=3, slot=0, func=0
	class=02-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	powerspec 2  supports D0 D1 D2 D3  current D0
	MSI supports 1 message
	map[10]: type 1, range 32, base b3200000, size 14, enabled
pcib2: (null) requested memory range 0xb3200000-0xb3203fff: good
pci3: <network> at device 0.0 (no driver attached)
nvidia0: <GeForce Go 6150> mem 0xb2000000-0xb2ffffff,0xc0000000-0xcfffffff,0xb1000000-0xb1ffffff irq 11 at device 5.0 on pci0
nvidia0: Reserved 0x1000000 bytes for rid 0x10 type 3 at 0xb2000000
nvidia0: Reserved 0x10000000 bytes for rid 0x14 type 3 at 0xc0000000
nvidia0: Reserved 0x1000000 bytes for rid 0x1c type 3 at 0xb1000000
WITNESS: spin lock ctl.mtx_rm not in order list
nvidia0: [GIANT-LOCKED]
WITNESS: spin lock dev.mtx_rm not in order list
pci0: <memory, RAM> at device 9.0 (no driver attached)
isab0: <PCI-ISA bridge> port 0x1d00-0x1d7f at device 10.0 on pci0
isa0: <ISA bus> on isab0
pci0: <serial bus, SMBus> at device 10.1 (no driver attached)
pci0: <processor> at device 10.3 (no driver attached)
ohci0: <OHCI (generic) USB controller> mem 0xb0004000-0xb0004fff irq 11 at device 11.0 on pci0
ohci0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xb0004000
ohci0: [GIANT-LOCKED]
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: nVidia OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 8 ports with 8 removable, self powered
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xb0005000-0xb00050ff irq 7 at device 11.1 on pci0
ehci0: Reserved 0x100 bytes for rid 0x10 type 3 at 0xb0005000
ehci0: [GIANT-LOCKED]
usb1: EHCI version 1.0
usb1: companion controller, 8 ports each: usb0
usb1: <EHCI (generic) USB 2.0 controller> on ehci0
usb1: USB revision 2.0
uhub1: nVidia EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub1: 8 ports with 8 removable, self powered
atapci0: <nVidia nForce MCP51 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x3080-0x308f at device 13.0 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x3080
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0: stat0=0x00 err=0x01 lsb=0x14 msb=0xeb
ata0: stat1=0x00 err=0x00 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=00 stat1=00 devices=0x4<ATAPI_MASTER>
ata0: [MPSAFE]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=00 ostat0=ff ostat1=ff
ata1: [MPSAFE]
atapci1: <nVidia nForce MCP51 SATA300 controller> port 0x30c0-0x30c7,0x30b4-0x30b7,0x30b8-0x30bf,0x30b0-0x30b3,0x3090-0x309f mem 0xb0006000-0xb0006fff irq 5 at device 14.0 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0x3090
atapci1: [MPSAFE]
atapci1: Reserved 0x1000 bytes for rid 0x24 type 3 at 0xb0006000
ata2: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x30c0
atapci1: Reserved 0x4 bytes for rid 0x14 type 4 at 0x30b4
ata2: SATA connect ready time=0ms
ata2: sata_connect devices=0x1<ATA_MASTER>
ata2: [MPSAFE]
ata3: <ATA channel 1> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x30b8
atapci1: Reserved 0x4 bytes for rid 0x1c type 4 at 0x30b0
ata3: SATA connect status=00000000
ata3: [MPSAFE]
pcib3: <ACPI PCI-PCI bridge> at device 16.0 on pci0
pcib3:   secondary bus     7
pcib3:   subordinate bus   7
pcib3:   I/O decode        0xf000-0xfff
pcib3:   memory decode     0xb3400000-0xb34fffff
pcib3:   prefetched decode 0xfff00000-0xfffff
pcib3:   Subtractively decoded bridge.
ACPI: Found matching pin for 7.5.INTA at func 0: 11
ACPI: Found matching pin for 7.5.INTB at func 1: 11
pci7: <ACPI PCI bus> on pcib3
pci7: physical bus=7
found->	vendor=0x1180, dev=0x0832, revid=0x00
	bus=7, slot=5, func=0
	class=0c-00-10, hdrtype=0x00, mfdev=1
	cmdreg=0x0106, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b3400000, size 11, enabled
pcib3: (null) requested memory range 0xb3400000-0xb34007ff: good
pcib3: matched entry for 7.5.INTA (src \\_SB_.PCI0.LNK1:0)
pcib3: slot 5 INTA routed to irq 11 via \\_SB_.PCI0.LNK1
found->	vendor=0x1180, dev=0x0822, revid=0x19
	bus=7, slot=5, func=1
	class=08-05-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0106, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b3400800, size  8, enabled
pcib3: (null) requested memory range 0xb3400800-0xb34008ff: good
pcib3: matched entry for 7.5.INTB (src \\_SB_.PCI0.LNK2:0)
pcib3: slot 5 INTB routed to irq 11 via \\_SB_.PCI0.LNK2
found->	vendor=0x1180, dev=0x0843, revid=0x01
	bus=7, slot=5, func=2
	class=08-80-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0106, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b3400c00, size  8, enabled
pcib3: (null) requested memory range 0xb3400c00-0xb3400cff: good
pcib3: matched entry for 7.5.INTB (src \\_SB_.PCI0.LNK2:0)
pcib3: slot 5 INTB routed to irq 11 via \\_SB_.PCI0.LNK2
found->	vendor=0x1180, dev=0x0592, revid=0x0a
	bus=7, slot=5, func=3
	class=08-80-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0102, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b3401000, size  8, enabled
pcib3: (null) requested memory range 0xb3401000-0xb34010ff: good
pcib3: matched entry for 7.5.INTB (src \\_SB_.PCI0.LNK2:0)
pcib3: slot 5 INTB routed to irq 11 via \\_SB_.PCI0.LNK2
found->	vendor=0x1180, dev=0x0852, revid=0x05
	bus=7, slot=5, func=4
	class=08-80-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0102, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base b3401400, size  8, enabled
pcib3: (null) requested memory range 0xb3401400-0xb34014ff: good
pcib3: matched entry for 7.5.INTB (src \\_SB_.PCI0.LNK2:0)
pcib3: slot 5 INTB routed to irq 11 via \\_SB_.PCI0.LNK2
fwohci0: vendor=1180, dev=832
fwohci0: vendor=1180, dev=832
fwohci0: <1394 Open Host Controller Interface> mem 0xb3400000-0xb34007ff irq 11 at device 5.0 on pci7
fwohci0: Reserved 0x800 bytes for rid 0x10 type 3 at 0xb3400000
fwohci0: [MPSAFE]
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:9f:c0:00:94:9a:b8:00
fwohci0: Phy 1394a available S400, 1 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:9f:c0:9a:b8:00
fwe0: bpf attached
fwe0: Ethernet address: 02:9f:c0:9a:b8:00
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
pci7: <base peripheral> at device 5.1 (no driver attached)
pci7: <base peripheral> at device 5.2 (no driver attached)
pci7: <base peripheral> at device 5.3 (no driver attached)
pci7: <base peripheral> at device 5.4 (no driver attached)
pci0: <multimedia> at device 16.1 (no driver attached)
nve0: <NVIDIA nForce MCP13 Networking Adapter> port 0x30e0-0x30e7 mem 0xb0008000-0xb0008fff irq 10 at device 20.0 on pci0
nve0: nvenetlib.o version 1.0-13
nve0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xb0008000
nve0: Ethernet address 00:16:36:8c:50:85
miibus0: <MII bus> on nve0
rlphy0: <RTL8201L 10/100 media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
nve0: bpf attached
nve0: Ethernet address: 00:16:36:8c:50:85
nve0: [MPSAFE]
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x41ab (2)
kbd0 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
atkbd0: [GIANT-LOCKED]
psm0: unable to allocate IRQ
psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
psm0: current command byte:0047
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse, device ID 3-00, 3 buttons
psm0: config:00000000, flags:00000008, packet size:4
psm0: syncmask:08, syncbits:00
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
ex_isa_identify()
ata: ata0 already exists; skipping it
ata: ata1 already exists; skipping it
atkbdc: atkbdc0 already exists; skipping it
pnp_identify: Trying Read_Port at 203
pnp_identify: Trying Read_Port at 243
pnp_identify: Trying Read_Port at 283
pnp_identify: Trying Read_Port at 2c3
pnp_identify: Trying Read_Port at 303
pnp_identify: Trying Read_Port at 343
pnp_identify: Trying Read_Port at 383
pnp_identify: Trying Read_Port at 3c3
PNP Identify complete
sc: sc0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
pmtimer0 on isa0
orm0: <ISA Option ROM> at iomem 0xcf800-0xd0fff on isa0
adv0: not probed (disabled)
aha0: not probed (disabled)
aic0: not probed (disabled)
bt0: not probed (disabled)
cs0: not probed (disabled)
ed0: not probed (disabled)
fdc0 failed to probe at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fe0: not probed (disabled)
ie0: not probed (disabled)
lnc0: not probed (disabled)
ppc0: parallel port not found.
ppc0: <Parallel port> failed to probe at irq 7 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd1, terminal emulator: sc (syscons terminal)
sio0: not probed (disabled)
sio1: not probed (disabled)
sio2: not probed (disabled)
sio3: not probed (disabled)
sn0: not probed (disabled)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
vt0: not probed (disabled)
isa_probe_children: probing PnP devices
Device configuration finished.
procfs registered
Timecounter "TSC" frequency 1607328579 Hz quality 800
Timecounters tick every 1.000 msec
Linux ELF exec handler installed
lo0: bpf attached
rr232x: no controller detected.
acpi_acad0: acline initialization start
acpi_acad0: On Line
acpi_acad0: acline initialization done, tried 1 times
battery0: battery initialization start
ata0-master: pio=PIO4 wdma=WDMA2 udma=UNSUPPORTED cable=40 wire
acd0: setting PIO4 on nForce MCP51 chip
acd0: <HL-DT-ST DVDRAM GSA-4084N/KQ09> DVDR drive at ata0 as master
acd0: read 4134KB/s (4134KB/s) write 4134KB/s (4134KB/s), 2048KB buffer, PIO4
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, DVDRAM, packet
acd0: Writes: CDR, CDRW, DVDR, DVDRAM, test write, burnproof
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: no/blank disc
ata2-master: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=40 wire
ad4: 76319MB <FUJITSU MHV2080BH PL 892C> at ata2-master SATA150
ad4: 156301488 sectors [155061C/16H/63S] 16 sectors/interrupt 1 depth queue
GEOM: new disk ad4
ad4: nVidia check1 failed
ad4: Adaptec check1 failed
ad4: LSI (v3) check1 failed
ad4: LSI (v2) check1 failed
ad4: FreeBSD check1 failed
battery0: battery initialization done, tried 1 times
(probe2:sbp0:0:2:0): error 22
(probe2:sbp0:0:2:0): Unretryable Error
(probe5:sbp0:0:5:0): error 22
(probe5:sbp0:0:5:0): Unretryable Error
(probe0:sbp0:0:0:0): error 22
(probe0:sbp0:0:0:0): Unretryable Error
(probe1:sbp0:0:1:0): error 22
(probe1:sbp0:0:1:0): Unretryable Error
(probe3:sbp0:0:3:0): error 22
(probe3:sbp0:0:3:0): Unretryable Error
(probe4:sbp0:0:4:0): error 22
(probe4:sbp0:0:4:0): Unretryable Error
(probe6:sbp0:0:6:0): error 22

How-To-Repeat: Boot 6.1 Release or 6.2 Beta or 7.0 Current from 10/2006 this HP
dv6119us Laptop.

I have not found out if this problem is particular this laptop or HP
laptops or to the Turion X2 Chip
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2006-10-22 18:15:25 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-i386

Reclassify.
Comment 2 Andrew Pantyukhin freebsd_committer freebsd_triage 2006-11-06 21:56:04 UTC
I experience the same on a Turion X2 laptop
with FreeBSD 7/amd64, only I can't disable
APIC for obvious reasons. I'll post details
later, but we might need to reclassify this
bug again.
Comment 3 Bruce Evans 2006-11-07 01:25:40 UTC
On Mon, 6 Nov 2006, Andrew Pantyukhin wrote:

> I experience the same on a Turion X2 laptop
> with FreeBSD 7/amd64,

On a similar laptop (HP nx6325 Turion X2 2GHz), I found 2 workarounds:

1. Boot with battery power only.  Usually works.

2. After forgetting (1), toggle AC power off and on.  Leave it off a
    few seconds.  Usually works after 1 iteration.

Some symptoms:

RELENG_6 GENERIC usually (appear to) hang after printing "ad4: ..."
just before mounting root.  Hitting keys didn't seem to help.  However,
about 1 time in 10, perhaps because I tried (1) or (2) accidentally,
the boot just worked, so I knew that there was no major problem with
ACPI.  RELENG_6 GENERIC kernels don't have SMP and boot fine without
ACPI, so disabling ACPI is good enough for them.

My specialized kernels happened to have a wrong ROOTDEVNAME hard-coded,
so they acted like booting with -a.  They always have ddb, and debugging
showed that everything was working at the time of asking the rootdev
name.  Then a few steps later in the boot, critical interrupts mostly
stop working.  Mainly the CPU timer interrupts.  A few of them apparently
get through as side effects of other interrupts -- that's why pounding
on the keyboard eventually makes progress.  Note that syscons only
redraws the screen after a timeout, so when timeouts don't work the
system appears to be more hung than it actually is.  My kernels all
use HZ = 100 and some fixes for stathz and profhz being broken by this.
This may make a difference here.

At a lower level, some of the symptoms are:
- break into ddb using Ctrl-Alt-Esc (some keys, including the normal
   debugger key Ctrl-SysReq, don't work on this laptop); put a breakpoint
   at hardclock(); give the "c" command to exit from ddb.  Then hardclock()
   is never reached unless you hit some keys or otherwise generate interrupts
   manually (ethernet interrupts don't seem to do it).
- same, except put a breakpoint at lapic_handle_timer() too.  Now this
   breakpoint keeps getting hit, and one at hardclock() keeps getting
   hit too.  Programmed delays didn't seem to help, and I stopped trying
   them when I found workaround (1) while trying them.
- "show intrcnt" shows most interrupts except timer ones seem to be working,
   but the timer interrupt rate drops from 1000*ncpu Hz to about 10 Hz
   max (probably because I can only type at about 10 Hz max).

The misconfiguration apparently happens before stopping at the askname
prompt, since turning AC power off (but not back on as in (2)) on
reaching this prompt doesn't help and turning AC power on any time
after reaching this prompt doesn't break the boot or subsequent
operation.  Only forgetting to turn it back on breaks subsequent
operation :).

Some other (software) problems with this laptop:
- no sleep states except S5 (shutdown) work right.  The next closest to
   working is the display switch.  It turns the display off but the
   system appears to hang for 1 second (+-10usec) and when it comes back
   the timecounter has lost 1 second but the cputicker (TSC) has kept track
   if the time perfectly.
- bge0 appears to lose interrupts for at least nfs traffic.  Pinging with
   an interval of 0.01 seconds helps to keep the nfs traffic flowing.,

> only I can't disable
> APIC for obvious reasons. I'll post details
> later, but we might need to reclassify this
> bug again.

I think the problem is in the HP BIOS, not in Turion X*'s.

Bruce
Comment 4 Andrew Pantyukhin freebsd_committer freebsd_triage 2006-11-07 08:29:25 UTC
> On a similar laptop (HP nx6325 Turion X2 2GHz), I found 2 workarounds:

I have Fujitsu-Siemens Amilo Pa 1510 Turion X2 TL-56 1.8GHz

> 1. Boot with battery power only.  Usually works.
>
> 2. After forgetting (1), toggle AC power off and on.  Leave it off a
>     few seconds.  Usually works after 1 iteration.

These workarounds don't work for me. What does work though
is keeping CPU loaded (at least one core) with something like
"md5</dev/zero" in the background. Some timings are still of,
especially with TSC timecounter, but with i8254 and ACPI-fast
it's mostly all right.

Just constantly moving mouse (touchpad) in X also helps.

> Some symptoms:

Very same symptoms. Word for word (but I didn't run ddb).

My dmesg and sysctl from 6.x and 7.x are at:
http://people.freebsd.org/~sat/abc/dj/

This laptop basically has ATI RS 485MC chipset +
SB460 south bridge.

What may be of intereset is that VMware guest hosts
have rather similar issues until you disable apic.
Comment 5 Rainer Alves 2006-11-07 11:52:44 UTC
I own a HP dv9000 and the outcome here is even worse: FreeBSD is 
completely unusable.
It doesn't matter if I disable APIC, ACPI or only SMP.

- Booting without any hints results in the well-known keyboard slowness.
- Disabling APIC or ACPI results in a kernel panic while trying to 
attach nve0 (nForce3), complete panic message available upon request.
- Disabling only SMP hangs the system after printing "ad0: ...".

I've tried 6.2-BETA3 and 7.0-CURRENT (the snapshot ISO from 200610).
Don't know what else to do, any hints would be greatly appreciated.

--
Rainer
Comment 6 Andrew Pantyukhin freebsd_committer freebsd_triage 2006-11-07 13:38:11 UTC
> I've tried 6.2-BETA3 and 7.0-CURRENT (the snapshot ISO from 200610).
> Don't know what else to do, any hints would be greatly appreciated.

Try to set kern.timecounter.hardware=i8254 in /etc/sysctl.conf
and start md5</dev/zero in the background. If you manage,
that should make the system usable, but not glitch-free.
Comment 7 Giorgos Keramidas freebsd_committer freebsd_triage 2006-11-07 19:12:12 UTC
Hi Dan,

I've had similar problems with an Acer Ferrari 3400-LMI, which were
resolved by setting in `/etc/rc.conf':

    performance_cx_lowest="HIGH"    # Online CPU idle state
    economy_cx_lowest="HIGH"        # Offline CPU idle state

Can you show us the values of these settings in `/etc/defaults/rc.conf'
and in `/etc/rc.conf' on your laptop?
Comment 8 Bruce Evans 2006-11-08 00:29:06 UTC
On Tue, 7 Nov 2006, Andrew Pantyukhin wrote:

> These workarounds don't work for me. What does work though
> is keeping CPU loaded (at least one core) with something like
> "md5</dev/zero" in the background.

Your problem might be quite different, since you have to be able to
boot to run that.

> Some timings are still of,
> especially with TSC timecounter, but with i8254 and ACPI-fast
> it's mostly all right.

The TSC is unlikely to work with more than 1 active CPU.  Both the
i8254 and ACPI-notslow work OK for me, but very slowly (time for
reading the counter: i8254: 4-5uS; ACPI-notslow: 1.6-1.7uS).

> Just constantly moving mouse (touchpad) in X also helps.

I have an nfs latency problem where pinging the interface to keep it
active helps a lot.  Both behaviours would be explained by interrupts
are getting lost somewhere.

Bruce
Comment 9 Dan Olson 2006-11-08 23:22:44 UTC
> Can you show us the values of these settings in `/etc/defaults/rc.conf'
> and in `/etc/rc.conf' on your laptop?

Hi Giorgos,

Starting out, these variables were not set in /etc/rc.conf. In 
/etc/defaults/rc.conf they were set as suggested:

	performance_cx_lowest="HIGH"
	economy_cx_lowest="HIGH"

After setting them as shown in my /etc/rc.conf, no change was noticed.

I also don't think the powernow feature is detected and used, at least 
with apic disabled.

Thanks for the suggestion though.

Dan
Comment 10 Ariff Abdullah freebsd_committer freebsd_triage 2006-11-17 09:15:01 UTC
It seems the workaround is rather simple:

machdep.cpu_idle_hlt=0

Unfortunately, the only place where you can set that is after the
system comes alive. This patch deals with that so that you can set it
as early as possible during boot procedure through loader.conf.

http://people.freebsd.org/~ariff/misc/turionX2.diff



Summary:
Basically the cpu enter deep sleep mode whenever it receives HLT
call within idle loop, and that only if APIC + Local APIC timer is
enabled. I can't tell whether it is because of APIC misseting, CPU bug
or else, but one thing for sure, FreeBSD 5.x/SMP boots happily on this
(well, that's because it doesn't use local APIC timer). With idle HLT
disabled, there will be a slight power savings penalty especially if
the cpu just sit idle doing nothing else.

CPU Errata:
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/33610.pdf


Perhaps jhb@ might have an interest in this issue.


--
Ariff Abdullah
FreeBSD

... Recording in stereo is obviously too advanced
    and confusing for us idiot ***** users :P ........
Comment 11 Andrew Pantyukhin freebsd_committer freebsd_triage 2006-11-17 09:34:25 UTC
On 11/17/06, Ariff Abdullah <ariff@freebsd.org> wrote:
> It seems the workaround is rather simple:
>
> machdep.cpu_idle_hlt=0

Thanks, it works!

The interesting thing is with snd_hda. When CPU is
100% loaded (at least one core), it works, but with
some crackling noise instead of the basses. When CPU
is idle, the noise makes sound virtually inaudible.
OTOH, snd_uaudio works great either way. I guess I'll
have to discuss that with you in a separate thread/PR.

My laptop hard drive developed bad blocks during the
trip to EuroBSDCon. I'll bring it in for repairs
tomorrow. I'll be glad to test whatever you throw at
me when it's fixed.

Thank you very much!
Comment 12 Bruce Evans 2006-11-17 12:36:49 UTC
On Fri, 17 Nov 2006, Ariff Abdullah wrote:

> It seems the workaround is rather simple:
>
> machdep.cpu_idle_hlt=0

This sort of works on an HP nx6325 too.  It fixes booting.

> Unfortunately, the only place where you can set that is after the
> system comes alive. This patch deals with that so that you can set it
> as early as possible during boot procedure through loader.conf.

After booting I had no problems that matter much to me (sleep/suspend
don't work; closing the lid only turns off the screen and drops 1
second from the timecounter), but with cpu_idle_hlt=0 (set manually
in ddb after booting with -d), the system runs very hot, and turning
cpu_idle_hlt back on works strangely (it cools an idle system, but
stops clock interrupts working), and turning it back off works as
expected (it reheats an idle system and restarts clock interrupts).
Apparently the SMP hook into cpu_idle() doesn't work right if the flag
is changed after booting.

> Summary:
> Basically the cpu enter deep sleep mode whenever it receives HLT
> call within idle loop, and that only if APIC + Local APIC timer is
> enabled. I can't tell whether it is because of APIC misseting, CPU bug
> or else, but one thing for sure, FreeBSD 5.x/SMP boots happily on this
> (well, that's because it doesn't use local APIC timer).

The boot problem also caused clock interrupts to stop working *until
I toggled AC power), so the problem is apparently related to using the
local APIC timer.

The power penalty seems to be more than slight.  On my nx6325,
tz0.temperature is now 50C with cpu_idle_hlt=1 and 75C with cpu_idle_hlt=0,
the latter even when on battery power.  I've also noticed this system
getting hot while in ddb, and wondered if it would help to use pause()
in the spinloops in console i/o routines.

Bruce
Comment 13 Ariff Abdullah freebsd_committer freebsd_triage 2006-11-17 14:50:19 UTC
> The power penalty seems to be more than slight.  On my nx6325,
> tz0.temperature is now 50C with cpu_idle_hlt=1 and 75C with
> cpu_idle_hlt=0, the latter even when on battery power.  I've also
> noticed this system getting hot while in ddb, and wondered if it
> would help to use pause() in the spinloops in console i/o routines.
> 

Apparently executing HLT on other cores seems fine, as long as we
_exclude_ at least a single core from doing so. That way, we still
have manageable timer interrupt while letting the other cores doing
power management stuffs. Currently, this is my crude crack on
machdep.c (both for i386 and amd64):

## BEGIN ##
void
cpu_idle(void)
{

#ifdef SMP
	if (mp_grab_cpu_hlt())
		return;
#endif

	if (cpu_idle_hlt) {
		disable_intr();
  		if (sched_runnable())
			enable_intr();
		else if (PCPU_GET(cpuid) == 0) <<<<<
			enable_intr();         <<<<<
		else
			(*cpu_idle_hook)();
	}
}
## END ##


Again, this only concern where local apic timer is in action for this
cpu.


--
Ariff Abdullah
FreeBSD

... Recording in stereo is obviously too advanced
    and confusing for us idiot ***** users :P ........
Comment 14 John Baldwin freebsd_committer freebsd_triage 2006-11-17 16:21:29 UTC
> Again, this only concern where local apic timer is in action for this
> cpu.

Are you using ACPI with Cx hlt states?  It's known that on many Intel
chips at least, entering C2 or C3 powers off the local APIC timer.  I
know of one possible workaround that we can use, but haven't had any
time to look at it.  Specifically, we could use another interrupt source
(such as the HPET counters) and schedule them to wake us up when the next
clock tick should fire when we enter C2 or higher sleep state.  You can
test this theory by setting the sysctl for ACPI to use only C1.

-- 
John Baldwin
Comment 15 Ariff Abdullah freebsd_committer freebsd_triage 2006-11-17 18:05:27 UTC
On Fri, 17 Nov 2006 16:50:14 GMT
John Baldwin <jhb@freebsd.org> wrote:
>  
>  Are you using ACPI with Cx hlt states?  It's known that on many
>  Intel chips at  least, entering C2 or C3 powers off the local APIC
>  timer.  I know of one  possible workaround that we can use, but
>  haven't had any time to look at it.   Specifically, we could use
>  another interrupt source (such as the HPET  counters) and schedule
>  them to wake us up when the next clock tick should  fire when we
>  enter C2 or higher sleep state.  You can test this theory by 
>  setting the sysctl for ACPI to use only C1.
>  
Unfortunately, this CPU is a bit special since it support nothing but
C1. Perhaps the logic is simmilar that is, if the CPU is at it lowest
Cx states (which in this sense, C1) and HLT is issued, interrupt
generation within the CPU is simply halted.

On Turion64 X2:
# sysctl hw.acpi.cpu
hw.acpi.cpu.cx_supported: C1/0
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu.cx_usage: 100.00%

On single core Turion64:
# sysctl hw.acpi.cpu
hw.acpi.cpu.cx_supported: C1/0 C2/18
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu.cx_usage: 100.00% 0.00%

Surprisingly, if I deliberately set cx_lowest to C2 on single core
Turion64 and HLT is issued through idle loop, the simmilar behaviour
can be observed.

Perhaps the workaround (or fix) best implmented within acpi cpu idle
hook itself:

acpi_cpu_c1() somewhere within sys/i386/acpica/acpi_machdep.c:

if (at_lowest_cx_states && first_cpu && lapic_timer_enabled) {
	enable intr;
} else {
	issue HLT;
}


This should fix issues with other cpu as well. Resonable? I guess so..



--
Ariff Abdullah
FreeBSD

... Recording in stereo is obviously too advanced
    and confusing for us idiot ***** users :P ........
Comment 16 Rainer Alves 2006-11-18 21:26:11 UTC
Ariff Abdullah wrote:
> Currently, this is my crude crack on
> machdep.c (both for i386 and amd64):
> 
...
> 	if (cpu_idle_hlt) {
> 		disable_intr();
>   		if (sched_runnable())
> 			enable_intr();
> 		else if (PCPU_GET(cpuid) == 0) <<<<<
> 			enable_intr();         <<<<<
> 		else
> 			(*cpu_idle_hook)();
> 	}

Thanks, with the above patch my system is now working properly, and I'm 
(finally) able to use both CPU cores.

CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-50 (1607.33-MHz K8-class CPU)
   Origin = "AuthenticAMD"  Id = 0x40f82  Stepping = 2
   Cores per package: 2
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0

--
Rainer Alves
Comment 17 Maxim Sobolev freebsd_committer freebsd_triage 2006-12-06 13:03:15 UTC
Guys, can you please fix/workaroind this problem ASAP and merge it into 
upcoming 6.2? There is lot of Turion64/X2 machines on the market today 
and not having FreeBSD running on them OOB will definitely piss off 
existing and potential users.


Thanks!

-Maxim
Comment 19 Maxim Sobolev 2007-01-08 20:19:08 UTC
There is another patch floating around that reportedly solves the same 
problem:

http://people.freebsd.org/~ariff/misc/idlecpu_apic_5.diff

-Maxim
Comment 20 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-17 21:24:47 UTC
Forget those ridiculous workaround, train wreck idle_cpu, etc. Please
try this patch (attached) instead.

--
Ariff Abdullah
FreeBSD

Index: src/sys/amd64/amd64/identcpu.c
===================================================================
RCS file: /home/ncvs/src/sys/amd64/amd64/identcpu.c,v
retrieving revision 1.153
diff -u -r1.153 identcpu.c
--- src/sys/amd64/amd64/identcpu.c	26 Mar 2007 18:03:29 -0000	1.153
+++ src/sys/amd64/amd64/identcpu.c	17 Apr 2007 20:13:35 -0000
@@ -357,9 +357,16 @@
 			if (cpu_feature & CPUID_HTT)
 				htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
 			if (strcmp(cpu_vendor, "AuthenticAMD") == 0 &&
-			    (amd_feature2 & AMDID2_CMP))
+			    (amd_feature2 & AMDID2_CMP)) {
 				cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1;
-			else if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
+				/*
+				 * Disable C1E on Turion64 X2 family
+				 * to keep apic timer alive.
+				 */
+				if (cmp > 1 && (cpu_id & ~0xf) == 0x40f80)
+					wrmsr(0xc0010055,
+					    rdmsr(0xc0010055) & ~0x10000000);
+			} else if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
 			    (cpu_high >= 4)) {
 				cpuid_count(4, 0, regs);
 				if ((regs[0] & 0x1f) != 0)
Index: src/sys/i386/i386/identcpu.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/identcpu.c,v
retrieving revision 1.176
diff -u -r1.176 identcpu.c
--- src/sys/i386/i386/identcpu.c	6 Apr 2007 18:15:02 -0000	1.176
+++ src/sys/i386/i386/identcpu.c	17 Apr 2007 20:13:35 -0000
@@ -863,9 +863,16 @@
 			if (cpu_feature & CPUID_HTT)
 				htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
 			if (strcmp(cpu_vendor, "AuthenticAMD") == 0 &&
-			    (amd_feature2 & AMDID2_CMP))
+			    (amd_feature2 & AMDID2_CMP)) {
 				cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1;
-			else if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
+				/*
+				 * Disable C1E on Turion64 X2 family
+				 * to keep apic timer alive.
+				 */
+				if (cmp > 1 && (cpu_id & ~0xf) == 0x40f80)
+					wrmsr(0xc0010055,
+					    rdmsr(0xc0010055) & ~0x10000000);
+			} else if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
 			    (cpu_high >= 4)) {
 				cpuid_count(4, 0, regs);
 				if ((regs[0] & 0x1f) != 0)
Comment 21 Rainer Alves 2007-04-18 05:20:56 UTC
Ariff Abdullah wrote:
> Forget those ridiculous workaround, train wreck idle_cpu, etc. Please
> try this patch (attached) instead.
>   

I've been using your idle_cpu_* patches for about 6 months and 
experienced some minor gliches (system would panic/hang once in a while).
Your new patch seems a lot simpler, and is working perfectly here so far.
Thanks!

- Rainer
Comment 22 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-18 10:11:42 UTC
On Wed, 18 Apr 2007 04:50:11 GMT
Rainer Alves <rainer.alves@gmail.com> wrote:
>  
>  I've been using your idle_cpu_* patches for about 6 months and 
>  experienced some minor gliches (system would panic/hang once in a
>  while). Your new patch seems a lot simpler, and is working
>  perfectly here so far. Thanks!
>  

This one should become the final patch (if nobody complains about it).
More thorough check on processor models/revisions especially for
possible future production. Please backout previous patches first
before applying this one.


--
Ariff Abdullah
FreeBSD

Index: src/sys/amd64/amd64/initcpu.c
===================================================================
RCS file: /home/ncvs/src/sys/amd64/amd64/initcpu.c,v
retrieving revision 1.50
diff -u -r1.50 initcpu.c
--- src/sys/amd64/amd64/initcpu.c	19 Jun 2006 22:59:28 -0000	1.50
+++ src/sys/amd64/amd64/initcpu.c	18 Apr 2007 08:52:10 -0000
@@ -79,4 +79,28 @@
 		wrmsr(MSR_EFER, msr);
 		pg_nx = PG_NX;
 	}
+	if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
+		/*
+		 * Detect the present of C1E capability mostly on latest
+		 * dual-cores (or future) k8 family.  This feature render the
+		 * apic timer dead, and we disable it by reading Interrupt
+		 * Pending Message register and unset both C1eOnCmpHalt
+		 * (bit 28) and SmiOnCmpHalt (bit 27).
+		 * 
+		 * Reference:
+		 *   "BIOS and Kernel Developer's Guide for AMD NPT Family 0Fh
+		 *    Processors"
+		 *   #32559 revision 3.00
+		 */
+		if (((cpu_id & 0x00000f00) == 0x00000f00 &&
+		    ((cpu_id & 0x000f0000) >= 0x00040000 ||
+		    (cpu_id & 0x0ff00000) > 0x00000000)) ||
+		    (cpu_id & 0x00000f00) > 0x00000f00) {
+			msr = rdmsr(0xc0010055) & 0x1fffffffULL;
+			if (msr & 0x18000000) {
+				msr &= ~0x18000000ULL;
+				wrmsr(0xc0010055, msr);
+			}
+		}
+	}
 }
Index: src/sys/i386/i386/initcpu.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/initcpu.c,v
retrieving revision 1.56
diff -u -r1.56 initcpu.c
--- src/sys/i386/i386/initcpu.c	6 Apr 2007 18:15:02 -0000	1.56
+++ src/sys/i386/i386/initcpu.c	18 Apr 2007 08:52:10 -0000
@@ -658,6 +658,31 @@
 				break;
 			}
 		} else if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
+			/*
+			 * Detect the present of C1E capability mostly on
+			 * latest dual-cores (or future) k8 family.  This
+			 * feature render the apic timer dead, and we disable
+			 * it by reading Interrupt Pending Message register
+			 * and unset both C1eOnCmpHalt (bit 28) and
+			 * SmiOnCmpHalt (bit 27).
+			 * 
+			 * Reference:
+			 *   "BIOS and Kernel Developer's Guide for AMD NPT
+			 *    Family 0Fh Processors"
+			 *   #32559 revision 3.00
+			 */
+			if (((cpu_id & 0x00000f00) == 0x00000f00 &&
+			    ((cpu_id & 0x000f0000) >= 0x00040000 ||
+			    (cpu_id & 0x0ff00000) > 0x00000000)) ||
+			    (cpu_id & 0x00000f00) > 0x00000f00) {
+				u_int64_t msr;
+
+				msr = rdmsr(0xc0010055) & 0x1fffffffULL;
+				if (msr & 0x18000000) {
+					msr &= ~0x18000000ULL;
+					wrmsr(0xc0010055, msr);
+				}
+			}
 #if defined(I686_CPU) && defined(CPU_ATHLON_SSE_HACK)
 			/*
 			 * Sometimes the BIOS doesn't enable SSE instructions.
Comment 23 Dan Olson 2007-04-22 16:09:54 UTC
> This one should become the final patch (if nobody complains about it).
> More thorough check on processor models/revisions especially for
> possible future production. Please backout previous patches first
> before applying this one.
> 
> Ariff Abdullah
> FreeBSD

This patch works for me.

Thanks Ariff

Dan Olson
Comment 24 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-22 17:22:50 UTC
>  This patch works for me.
>  

Just a final note. Since the interrupt pending message register is
local to each cpu / core, I had to move the fixup deep into
lapic_setup() routine though it works with just single cpu / core
fixup. Better safe than sorry.

  http://people.freebsd.org/~ariff/test/k8_c1e.diff


--
Ariff Abdullah
FreeBSD
Comment 25 Bruce Evans 2007-04-23 21:37:23 UTC
> This one should become the final patch (if nobody complains about it).
> More thorough check on processor models/revisions especially for
> possible future production. Please backout previous patches first
> before applying this one.

Nice.

This not-actually-final one works on my HP nx6325 Turion X2.

Does it affect the CPU's sleep cycles other than to wake up the CPU
for acpi timer interrupts?

Bruce
Comment 26 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-24 03:04:32 UTC
>  Does it affect the CPU's sleep cycles other than to wake up the CPU
>  for acpi timer interrupts?
>  
C1E works more or less the same way with C2/3, except that the spec
require the BIOS not to promote the state to the OS. The simmilar dead
apic timer behaviour can be observed on other non-C1E by setting
hw.acpi.cpu.cx_lowest/dev.cpu.%d.cx_lowest to its lowest supported
Cx state.


--
Ariff Abdullah
FreeBSD
Comment 27 dfilter service freebsd_committer freebsd_triage 2007-04-25 20:58:48 UTC
ariff       2007-04-25 19:58:42 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      local_apic.c 
    sys/i386/i386        local_apic.c 
  Log:
  Disable C1 Enhanced mode on AMD K8 Family Revision F and above to keep
  local APIC timer alive.
  
  Reviewed by:    jhb
  PR:             i386/104678
  MFC after:      3 days
  
  Revision  Changes    Path
  1.38      +23 -0     src/sys/amd64/amd64/local_apic.c
  1.40      +23 -0     src/sys/i386/i386/local_apic.c
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 28 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-25 21:03:01 UTC
State Changed
From-To: open->patched

Fix committed, MFC in 3 days. 


Comment 29 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-25 21:03:01 UTC
Responsible Changed
From-To: freebsd-i386->ariff

I'm handling this.
Comment 30 dfilter service freebsd_committer freebsd_triage 2007-04-28 10:04:20 UTC
ariff       2007-04-28 09:04:10 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/amd64/amd64      local_apic.c 
    sys/i386/i386        local_apic.c 
  Log:
  MFC:
  Disable C1 Enhanced mode on AMD K8 Family Revision F and above to keep
  local APIC timer alive.
  
  Reviewed by:    jhb
  PR:             i386/104678
  
  Revision   Changes    Path
  1.17.2.13  +23 -0     src/sys/amd64/amd64/local_apic.c
  1.17.2.13  +23 -0     src/sys/i386/i386/local_apic.c
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 31 Ariff Abdullah freebsd_committer freebsd_triage 2007-04-28 10:07:35 UTC
State Changed
From-To: patched->closed

MFC done. Have fun.