Subject: Re: apic timing/clock problem in 4.0_RC3, MacBook 2x2.0
To: Andrew Doran <ad@netbsd.org>
From: Marco Trillo <marcotrillo@gmail.com>
List: port-i386
Date: 11/14/2007 20:52:11
Hi,

On 11/14/07, Andrew Doran <ad@netbsd.org> wrote:
> On Sat, Nov 03, 2007 at 02:19:37PM +0100, Marco Trillo wrote:
>
> > I installed NetBSD 4.0_RC3/i386 on a 2x2.0 MacBook (the original model
> > with a 32-bit Core Duo, not the one with 64-bit Core 2 Duo) -- dmesg
> > attached.
> >
> > I'm running the GENERIC.MP and everything works fine (SMP, devices,
> > etc.) except one timing problem.
> >
> > The timing/clock appears to be uncalibrated. For example, if you run:
> >
> > # sleep 1
> > (will sleep 3.5 seconds approx)
> > # sleep 2
> > (will sleep 7 seconds)
> > # sleep 3
> > (will sleep 11 seconds)
>
> ...
> > cpu0: Intel Pentium M (Yonah) (686-class), 2063.77 MHz, id 0x6e8
> ...
> > cpu1: Intel Pentium M (Yonah) (686-class), 7122.27 MHz, id 0x6e8
>
> Can you try a -current kernel from today? This may be fixed. I have put a
> precompiled one here:
>
>         http://www.netbsd.org/~ad/netbsd.bz2
>

I tried booting this kernel, but it paniced. I wasn't able to use the
internal keyboard at the ddb prompt, so I couldn't get a trace or the
dmesg. I copied the latest lines by hand:

uhci0 at pci0 dev 29 function 0 [...]
uhci0: interrupting at ioapic0 pin 21 (irq 11)
uvm_fault(0xc0a88dc0, 0, 1) -> 0xe
kernel: supervisor trap page fault, code = 0
Stopped in pid 0.1 (system) at netbsd:softintr_schedule+0xc: movl
0x8(%esi), %edi

I booted the kernel using the bootloader from the 4.0 installation; I
don't know if this can cause problems.

I suspect that the legacy USB SMI quirk is causing this too. The 4.0
kernel also paniced (and cpu1 would fail to start) unless you used the
workaround of generating random USB interrupts with the keyboard (I
also tried this with this kernel but it didn't work). Disabling the
USB legacy SMI_EN bit fixed this problem with the 4.0 kernel.

I'll do a installation of -current and try to investigate this problem.

I also noticed some other problems with the 4.0 kernel (even with the
patch): sometimes, in the kernel boot, 'lost interrupt' messages are
printed, and the kernel seems slow (for example, hangs in the middle
of line messages) or just seems to hang (when this happened I aborted
the boot and did a hard reboot). This has only happened two times so
far.
But I suspect this problem is gone with -current.

Thanks,
Marco.