lkml.org 
[lkml]   [2003]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: linux-2.6.0-test2: Never using pm_idle (CPU wasting power)
    Date
    On Thursday 31 July 2003 15.07, Christian Vogel wrote:
    > Hi,
    >
    > on a Thinkpad 600X I noticed the CPU getting very hot. It turned
    > out that pm_idle was never called (which invokes the ACPI pm_idle
    > call in this case) and default_idle was used instead.
    >
    > /* arch/i386/kernel/process.c, line 723 */
    > void cpu_idle (void)
    > {
    > /* endless idle loop with no priority at all */
    > while (1) {
    > void (*idle)(void) = pm_idle;
    > if (!idle)
    > idle = default_idle; /* once on bootup */
    > irq_stat[smp_processor_id()].idle_timestamp = jiffies;
    > while (!need_resched())
    > idle();
    > schedule(); /* never reached */
    > }
    > }
    >
    > The schedule() is never reached (need_resched() is never 0) and
    > so the idle-variable is not updated. pm_idle is NULL on the
    > first call to cpu_idle on this thinkpad, and so I stay idling
    > in the default_idle()-function.
    >

    This smells preemptive kernel, correct?

    > By moving the "void *idle = pm_idle; if(!idle)..." in the inner
    > while()-loop the notebook calls pm_idle (as it get's updated by ACPI)
    > and stays cool.
    >

    /RogerL

    --
    Roger Larsson
    Skellefteå
    Sweden
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:47    [W:0.025 / U:0.280 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site