[lkml]   [2005]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: [2.6.12] x86-64 IO-APIC + timer doesn't work II + PATCH
    On Sat, Jun 18, 2005 at 02:52:52PM +0100, Alistair John Strachan wrote:
    > Hi,
    > I upgraded my nForce3 x86-64 desktop from 2.6.12-rc5 to 2.6.12 today and
    > something strange started happening. Waay back in 2.6.x I had problems with
    > the "noapic" default for nForce boards on x86-64, and so used the "apic"
    > kernel boot parameter to force the apic on; this worked successfully for a
    > long time with no timer problems.
    > However, as of 2.6.12 (maybe -rc6, too?) my desktop occasionally fails to boot
    > with the message:
    > "IO-APIC + timer doesn't work! Try using the 'noapic' kernel parameter."
    > (arch/x86_64/kernel/io_apic.c)
    > However, this message is intermittent; it is sometimes possible to boot
    > without getting it, and everything works fine. So I took its advice and ran
    > with noapic, and everything seems fine now.
    > However, I just thought I'd let whoever maintains this bit of code know that
    > the check isn't a "sure thing": it's not being flagged reliably. Whether this
    > is my BIOS or the kernel, I don't know.

    It's a bit of a shot into the dark, but could you test if the following
    patch helps? The A64 is quite aggressive in reordering instructions and it
    might be breaking __delay() and cause it to return early.

    If not I would check what a failing case and a working case output for

    Calibrating delay loop... 3940.35 BogoMIPS (lpj=1970176)

    Does the failing kernel output something different here?


    diff -u linux-2.6.12/arch/x86_64/lib/delay.c-o linux-2.6.12-rc6-git4-work/arch/x86_64/lib/delay.c
    --- linux-2.6.12/arch/x86_64/lib/delay.c-o 2005-06-11 13:04:28.000000000 +0200
    +++ linux-2.6.12/arch/x86_64/lib/delay.c 2005-06-19 01:49:09.000000000 +0200
    @@ -27,9 +27,9 @@
    + sync_core();
    - }
    - while((now-bclock) < loops);
    + } while((now-bclock) < loops);

    inline void __const_udelay(unsigned long xloops)
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2005-06-19 01:55    [W:0.020 / U:15.660 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site