| Summary: | [patch] SMP not working on Turion XP Laptop | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Dan Olson <danolson> |
| Component: | i386 | Assignee: | Ariff Abdullah <ariff> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 6.2-PRERELEASE | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-bugs->freebsd-i386 Reclassify. 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. 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 > 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. 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 > 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.
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?
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 > 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
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 ........ 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! 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 > 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 ........
> 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
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 ........ 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 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 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 There is another patch floating around that reportedly solves the same problem: http://people.freebsd.org/~ariff/misc/idlecpu_apic_5.diff -Maxim 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)
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
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. > 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
> 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 > 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
> 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
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 Fix committed, MFC in 3 days. Responsible Changed From-To: freebsd-i386->ariff I'm handling this. 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"
State Changed From-To: patched->closed MFC done. Have fun. |
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