From nobody@FreeBSD.org  Sun Oct 22 16:52:14 2006
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id B44FB16A4F5
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 22 Oct 2006 16:52:14 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 326A443DB9
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 22 Oct 2006 16:52:06 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k9MGq6qu096048
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 22 Oct 2006 16:52:06 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id k9MGq6l5096047;
	Sun, 22 Oct 2006 16:52:06 GMT
	(envelope-from nobody)
Message-Id: <200610221652.k9MGq6l5096047@www.freebsd.org>
Date: Sun, 22 Oct 2006 16:52:06 GMT
From: Dan Olson<danolson@visi.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: SMP not working on Turion XP Laptop
X-Send-Pr-Version: www-3.0

>Number:         104678
>Category:       i386
>Synopsis:       [patch] SMP not working on Turion XP Laptop
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    ariff
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Oct 22 17:00:39 GMT 2006
>Closed-Date:    Sat Apr 28 09:08:22 GMT 2007
>Last-Modified:  Sat Apr 28 09:10:06 GMT 2007
>Originator:     Dan Olson
>Release:        6.2-PRERELEASE
>Organization:
>Environment:
FreeBSD tron.danolson.dsl.visi.com 6.2-PRERELEASE 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  i386
>Description:
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
>Fix:

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-i386 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sun Oct 22 17:15:25 UTC 2006 
Responsible-Changed-Why:  
Reclassify. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=104678 

From: "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
To: bug-followup@FreeBSD.org, danolson@visi.com
Cc:  
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 7 Nov 2006 00:56:04 +0300

 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.

From: Bruce Evans <bde@zeta.org.au>
To: Andrew Pantyukhin <infofarmer@freebsd.org>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 7 Nov 2006 12:25:40 +1100 (EST)

 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

From: "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
To: "Bruce Evans" <bde@zeta.org.au>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 7 Nov 2006 11:29:25 +0300

 > 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.

From: Rainer Alves <rainer.alves@gmail.com>
To: bug-followup@FreeBSD.org
Cc: danolson@visi.com,  infofarmer@FreeBSD.org,  bde@zeta.org.au, 
 jhb@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 07 Nov 2006 09:52:44 -0200

 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

From: "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
To: "Rainer Alves" <rainer.alves@gmail.com>
Cc: bug-followup@freebsd.org, danolson@visi.com, bde@zeta.org.au, 
	jhb@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 7 Nov 2006 16:38:11 +0300

 > 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.

From: Bruce Evans <bde@zeta.org.au>
To: Andrew Pantyukhin <infofarmer@freebsd.org>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 8 Nov 2006 11:29:06 +1100 (EST)

 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

From: Giorgos Keramidas <keramida@freebsd.org>
To: Dan Olson <danolson@visi.com>
Cc: bug-followup@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 7 Nov 2006 21:12:12 +0200

 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?
 

From: Dan Olson <danolson@visi.com>
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 08 Nov 2006 17:22:44 -0600

 > 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
 
From: Ariff Abdullah <ariff@FreeBSD.org>
To: bug-followup@FreeBSD.org, danolson@visi.com, rainer.alves@gmail.com,
        infofarmer@FreeBSD.org, bde@zeta.org.au
Cc: jhb@FreeBSD.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Fri, 17 Nov 2006 17:15:01 +0800

 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 ........

From: "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
To: "Ariff Abdullah" <ariff@freebsd.org>
Cc: bug-followup@freebsd.org, danolson@visi.com, rainer.alves@gmail.com, 
	bde@zeta.org.au, jhb@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Fri, 17 Nov 2006 12:34:25 +0300

 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!

From: Bruce Evans <bde@zeta.org.au>
To: Ariff Abdullah <ariff@freebsd.org>
Cc: bug-followup@freebsd.org, danolson@visi.com, rainer.alves@gmail.com, 
    infofarmer@freebsd.org, jhb@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Fri, 17 Nov 2006 23:36:49 +1100 (EST)

 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

From: Ariff Abdullah <ariff@FreeBSD.org>
To: Bruce Evans <bde@zeta.org.au>
Cc: bug-followup@FreeBSD.org, danolson@visi.com, rainer.alves@gmail.com,
        infofarmer@FreeBSD.org, jhb@FreeBSD.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Fri, 17 Nov 2006 22:50:19 +0800

 > 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 ........

From: John Baldwin <jhb@freebsd.org>
To: Ariff Abdullah <ariff@freebsd.org>
Cc: Bruce Evans <bde@zeta.org.au>, bug-followup@freebsd.org, danolson@visi.com,
        rainer.alves@gmail.com, infofarmer@freebsd.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Fri, 17 Nov 2006 11:21:29 -0500

 > 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

From: Ariff Abdullah <ariff@FreeBSD.org>
To: John Baldwin <jhb@FreeBSD.org>
Cc: bug-followup@FreeBSD.org, bde@zeta.org.au, danolson@visi.com,
        rainer.alves@gmail.com, infofarmer@FreeBSD.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Sat, 18 Nov 2006 02:05:27 +0800

 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 ........

From: Rainer Alves <rainer.alves@gmail.com>
To: Ariff Abdullah <ariff@FreeBSD.org>
Cc: Bruce Evans <bde@zeta.org.au>,  bug-followup@FreeBSD.org, 
 danolson@visi.com,  infofarmer@FreeBSD.org,  jhb@FreeBSD.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Sat, 18 Nov 2006 19:26:11 -0200

 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
 
 

From: Maxim Sobolev <sobomax@FreeBSD.org>
To: bug-followup@FreeBSD.org, danolson@visi.com
Cc:  
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 06 Dec 2006 05:03:15 -0800

 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

From: Maxim Sobolev <sobomax@FreeBSD.org>
To: bug-followup@FreeBSD.org, danolson@visi.com
Cc:  
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 06 Dec 2006 10:14:39 -0800

 There is pretty long discussion of the problem and ways to solve it here:
 
 http://groups.google.ca/group/linux.kernel/browse_thread/thread/3e0d789c5054d648/fc931f978ef5f481?lnk=st&q=%5D%5BPATCH%5D+i386+x86-64+Eliminate+Local+APIC+timer+interrupt&rnum=1&hl=en#fc931f978ef5f481
 
 -Maxim

From: Maxim Sobolev <sobomax@sippysoft.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Mon, 08 Jan 2007 12:19:08 -0800

 There is another patch floating around that reportedly solves the same 
 problem:
 
 http://people.freebsd.org/~ariff/misc/idlecpu_apic_5.diff
 
 -Maxim

From: Ariff Abdullah <ariff@FreeBSD.org>
To: bug-followup@FreeBSD.org, bde@zeta.org.au, danolson@visi.com,
 infofarmer@FreeBSD.org, rainer.alves@gmail.com, kpitcher@KeithPitcher.com
Cc:  
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 18 Apr 2007 04:24:47 +0800

 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)
 
From: Rainer Alves <rainer.alves@gmail.com>
To: Ariff Abdullah <ariff@FreeBSD.org>
Cc: bug-followup@FreeBSD.org,  bde@zeta.org.au,  danolson@visi.com, 
 infofarmer@FreeBSD.org,  kpitcher@KeithPitcher.com
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 18 Apr 2007 01:20:56 -0300

 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
 

From: Ariff Abdullah <ariff@FreeBSD.org>
To: Rainer Alves <rainer.alves@gmail.com>
Cc: bug-followup@FreeBSD.org,  bde@zeta.org.au,  danolson@visi.com,
 infofarmer@FreeBSD.org,  kpitcher@KeithPitcher.com
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Wed, 18 Apr 2007 17:11:42 +0800

 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.
 
From: Dan Olson <danolson@visi.com>
To: Ariff Abdullah <ariff@FreeBSD.org>
Cc: Rainer Alves <rainer.alves@gmail.com>, bug-followup@FreeBSD.org,
	bde@zeta.org.au, kpitcher@KeithPitcher.com
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Sun, 22 Apr 2007 10:09:54 -0500

 > 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

From: Ariff Abdullah <ariff@FreeBSD.org>
To: danolson@visi.com
Cc: bug-followup@FreeBSD.org, bde@zeta.org.au, infofarmer@FreeBSD.org,
 rainer.alves@gmail.com, kpitcher@KeithPitcher.com
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Mon, 23 Apr 2007 00:22:50 +0800

 >  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
 
From: Bruce Evans <bde@zeta.org.au>
To: Ariff Abdullah <ariff@FreeBSD.org>
Cc: Rainer Alves <rainer.alves@gmail.com>, bug-followup@FreeBSD.org, 
    danolson@visi.com, infofarmer@FreeBSD.org, kpitcher@KeithPitcher.com
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 24 Apr 2007 06:37:23 +1000 (EST)

 > 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

From: Ariff Abdullah <ariff@FreeBSD.org>
To: Bruce Evans <bde@zeta.org.au>
Cc: bug-followup@FreeBSD.org
Subject: Re: i386/104678: SMP not working on Turion XP Laptop
Date: Tue, 24 Apr 2007 10:04:32 +0800

 >  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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/104678: commit references a PR
Date: Wed, 25 Apr 2007 19:58:48 +0000 (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"
 
State-Changed-From-To: open->patched 
State-Changed-By: ariff 
State-Changed-When: Wed Apr 25 20:03:01 UTC 2007 
State-Changed-Why:  
Fix committed, MFC in 3 days. 


Responsible-Changed-From-To: freebsd-i386->ariff 
Responsible-Changed-By: ariff 
Responsible-Changed-When: Wed Apr 25 20:03:01 UTC 2007 
Responsible-Changed-Why:  
I'm handling this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=104678 
State-Changed-From-To: patched->closed 
State-Changed-By: ariff 
State-Changed-When: Sat Apr 28 09:07:35 UTC 2007 
State-Changed-Why:  
MFC done. Have fun. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=104678 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/104678: commit references a PR
Date: Sat, 28 Apr 2007 09:04:20 +0000 (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"
 
>Unformatted:
