lkml.org 
[lkml]   [2008]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: HPET regression in 2.6.26 versus 2.6.25 -- RCU problem
    On Mon, Aug 11, 2008 at 4:25 AM, Ingo Molnar <mingo@elte.hu> wrote:
    >
    > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
    >
    >> > I'm _way_ over my head in this discussion, but here's some more food
    >> > for thought. Last weekend, when I first tried 2.6.26 and discovered
    >> > the freeze, I thought an error of my own in .config was causing it.
    >> > Before I ever sought help, I made about a dozen experiments with
    >> > different .config files.
    >> >
    >> > One series of those experiments involved turning off most of the
    >> > kernel... including CONFIG_INET. The kernel still froze, but when
    >> > entering pci_init(). (This info can be read in my original post to
    >> > the Debian BTS, which I have provided links for a couple of times in
    >> > this LKML thread. I even went further and removed enough that the
    >> > freeze was avoided, but so much of the kernel was missing that my
    >> > init scripts couldn't mount a hard disk any more. Trying to restore
    >> > enough to allow HD mounting just brought back the freeze.)
    > [...]
    >>
    >> RCU doesn't use HPET directly. Most of its time-dependent behavior
    >> comes from its being invoked from the scheduling-clock interrupt.
    >
    > such freezes frequently occur due to the plain lack of timer interrupts.
    >
    > As networking's rcu_synchronize() is one of the first calls in the
    > kernel that relies on a timer IRQ hitting the CPU, it would be the first
    > one that "freezes". It's not a real freeze though: it's the lack of
    > timer events breaking RCU completion. (RCU has an implicit and somewhat
    > subtle dependency on timer irqs periodically hitting the CPU)
    >
    > You can probably verify this by adding something like this to
    > kernel/timer.c's do_timer() function:
    >
    > if (printk_ratelimit())
    > printk("timer irq hit, jiffies: %ld\n", jiffies);
    >
    > Yinghai, do you have any ideas about this particular problem? One theory
    > would be that your e820 changes might have caused a shuffling of
    > resources that made the hpet's timer IRQ generation inoperable.

    the hpet request_resource() calling fail?

    YH


    \
     
     \ /
      Last update: 2008-08-11 18:19    [W:0.024 / U:88.800 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site