Re: 100% C0 with 2.6.25-rc - Kernel

This is a discussion on Re: 100% C0 with 2.6.25-rc - Kernel ; On Thursday, 21 of February 2008, Jan Willies wrote: > Hi, > > Since 2.6.25-rc1 I have a lot of wakeups/s (≈134191,4) and spend 100% in C0. > It worked fine with 2.6.24 and commandline nolapic. Without nolapic I had ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: Re: 100% C0 with 2.6.25-rc

  1. Re: 100% C0 with 2.6.25-rc

    On Thursday, 21 of February 2008, Jan Willies wrote:
    > Hi,
    >
    > Since 2.6.25-rc1 I have a lot of wakeups/s (≈134191,4) and spend 100% in C0.
    > It worked fine with 2.6.24 and commandline nolapic. Without nolapic I had 80k
    > wakeups/s after some time, but not right from the start like now.


    We have a regression from 2.6.24, apparently interrupts-related.

    > What useful information can I provide?


    Let's see what the experts say.

    Thanks,
    Rafael
    --
    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/

  2. Re: 100% C0 with 2.6.25-rc

    Rafael J. Wysocki wrote:
    > On Thursday, 21 of February 2008, Jan Willies wrote:
    >> Since 2.6.25-rc1 I have a lot of wakeups/s (≈134191,4) and spend 100% in C0.
    >> It worked fine with 2.6.24 and commandline nolapic. Without nolapic I had 80k
    >> wakeups/s after some time, but not right from the start like now.

    >
    > We have a regression from 2.6.24, apparently interrupts-related.


    After a lot of bisecting I've found the bad commit:

    9b12e18cdc1553de62d931e73443c806347cd974 is first bad commit
    commit 9b12e18cdc1553de62d931e73443c806347cd974
    Author: venkatesh.pallipadi@intel.com
    Date: Thu Jan 31 17:35:05 2008 -0800

    ACPI: cpuidle: Support C1 idle time accounting

    Show C1 idle time in /sysfs cpuidle interface. C1 idle time may not
    be entirely accurate in all cases. It includes the time spent
    in the interrupt handler after wakeup with "hlt" based C1. But, it will
    be accurate with "mwait" based C1.


    Reverting the commit brings my laptop back to C2.


    HTH

    - Jan
    --
    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/

  3. RE: 100% C0 with 2.6.25-rc



    >-----Original Message-----
    >From: Jan Willies [mailto:jan@willies.info]
    >Sent: Friday, February 22, 2008 7:56 AM
    >To: Rafael J. Wysocki
    >Cc: linux-acpi@vger.kernel.org; Ingo Molnar; LKML; Thomas
    >Gleixner; Pallipadi, Venkatesh
    >Subject: Re: 100% C0 with 2.6.25-rc
    >
    >Rafael J. Wysocki wrote:
    >> On Thursday, 21 of February 2008, Jan Willies wrote:
    >>> Since 2.6.25-rc1 I have a lot of wakeups/s (134191,4) and

    >spend 100% in C0.
    >>> It worked fine with 2.6.24 and commandline nolapic. Without

    >nolapic I had 80k
    >>> wakeups/s after some time, but not right from the start like now.

    >>
    >> We have a regression from 2.6.24, apparently interrupts-related.

    >
    >After a lot of bisecting I've found the bad commit:
    >
    >9b12e18cdc1553de62d931e73443c806347cd974 is first bad commit
    >commit 9b12e18cdc1553de62d931e73443c806347cd974
    >Author: venkatesh.pallipadi@intel.com
    >Date: Thu Jan 31 17:35:05 2008 -0800
    >
    > ACPI: cpuidle: Support C1 idle time accounting
    >
    > Show C1 idle time in /sysfs cpuidle interface. C1 idle time may not
    > be entirely accurate in all cases. It includes the time spent
    > in the interrupt handler after wakeup with "hlt" based C1.
    >But, it will
    > be accurate with "mwait" based C1.
    >
    >
    >Reverting the commit brings my laptop back to C2.
    >


    Thanks for the bisect info. I will look at the bad side effects that patch may be having and I should have a patch for you to test later today....

    Thanks,
    Venki
    --
    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/

  4. RE: 100% C0 with 2.6.25-rc



    >-----Original Message-----
    >From: Jan Willies [mailto:jan@willies.info]
    >Sent: Friday, February 22, 2008 7:56 AM
    >To: Rafael J. Wysocki
    >Cc: linux-acpi@vger.kernel.org; Ingo Molnar; LKML; Thomas
    >Gleixner; Pallipadi, Venkatesh
    >Subject: Re: 100% C0 with 2.6.25-rc
    >
    >Rafael J. Wysocki wrote:
    >> On Thursday, 21 of February 2008, Jan Willies wrote:
    >>> Since 2.6.25-rc1 I have a lot of wakeups/s (134191,4) and

    >spend 100% in C0.
    >>> It worked fine with 2.6.24 and commandline nolapic. Without

    >nolapic I had 80k
    >>> wakeups/s after some time, but not right from the start like now.

    >>
    >> We have a regression from 2.6.24, apparently interrupts-related.

    >
    >After a lot of bisecting I've found the bad commit:
    >
    >9b12e18cdc1553de62d931e73443c806347cd974 is first bad commit
    >commit 9b12e18cdc1553de62d931e73443c806347cd974
    >Author: venkatesh.pallipadi@intel.com
    >Date: Thu Jan 31 17:35:05 2008 -0800
    >
    > ACPI: cpuidle: Support C1 idle time accounting
    >
    > Show C1 idle time in /sysfs cpuidle interface. C1 idle time may not
    > be entirely accurate in all cases. It includes the time spent
    > in the interrupt handler after wakeup with "hlt" based C1.
    >But, it will
    > be accurate with "mwait" based C1.
    >
    >
    >Reverting the commit brings my laptop back to C2.
    >


    One question. Do you have CONFIG_CPU_IDLE enabled in your confg?

    Thanks,
    Venki
    --
    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/

  5. RE: 100% C0 with 2.6.25-rc



    >-----Original Message-----
    >From: Jan Willies [mailto:jan@willies.info]
    >Sent: Friday, February 22, 2008 9:50 AM
    >To: Pallipadi, Venkatesh
    >Cc: Rafael J. Wysocki; linux-acpi@vger.kernel.org; Ingo
    >Molnar; LKML; Thomas Gleixner
    >Subject: Re: 100% C0 with 2.6.25-rc
    >
    >Pallipadi, Venkatesh wrote:
    >> One question. Do you have CONFIG_CPU_IDLE enabled in your confg?

    >
    >Yes, I have. Attached is my .config file
    >


    Can you try with it disabled and check whether you still see the
    problem?

    Thanks,
    Venki
    --
    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/

  6. Re: 100% C0 with 2.6.25-rc

    Pallipadi, Venkatesh wrote:
    >> -----Original Message-----
    >> From: Jan Willies [mailto:jan@willies.info]
    >> Sent: Friday, February 22, 2008 9:50 AM
    >> To: Pallipadi, Venkatesh
    >> Cc: Rafael J. Wysocki; linux-acpi@vger.kernel.org; Ingo
    >> Molnar; LKML; Thomas Gleixner
    >> Subject: Re: 100% C0 with 2.6.25-rc
    >>
    >> Pallipadi, Venkatesh wrote:
    >>> One question. Do you have CONFIG_CPU_IDLE enabled in your confg?

    >> Yes, I have. Attached is my .config file
    >>

    >
    > Can you try with it disabled and check whether you still see the
    > problem?


    Yup you are right, that fixes the problem as well.


    - Jan
    --
    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/

  7. Re: 100% C0 with 2.6.25-rc

    On Fri, Feb 22, 2008 at 09:03:55AM -0800, Pallipadi, Venkatesh wrote:
    >
    >
    > >-----Original Message-----
    > >From: Jan Willies [mailto:jan@willies.info]
    > >Sent: Friday, February 22, 2008 7:56 AM
    > >To: Rafael J. Wysocki
    > >Cc: linux-acpi@vger.kernel.org; Ingo Molnar; LKML; Thomas
    > >Gleixner; Pallipadi, Venkatesh
    > >Subject: Re: 100% C0 with 2.6.25-rc
    > >
    > >Rafael J. Wysocki wrote:
    > >> On Thursday, 21 of February 2008, Jan Willies wrote:
    > >>> Since 2.6.25-rc1 I have a lot of wakeups/s (≈134191,4) and

    > >spend 100% in C0.
    > >>> It worked fine with 2.6.24 and commandline nolapic. Without

    > >nolapic I had 80k
    > >>> wakeups/s after some time, but not right from the start like now.
    > >>
    > >> We have a regression from 2.6.24, apparently interrupts-related.

    > >
    > >After a lot of bisecting I've found the bad commit:
    > >
    > >9b12e18cdc1553de62d931e73443c806347cd974 is first bad commit
    > >commit 9b12e18cdc1553de62d931e73443c806347cd974
    > >Author: venkatesh.pallipadi@intel.com
    > >Date: Thu Jan 31 17:35:05 2008 -0800
    > >
    > > ACPI: cpuidle: Support C1 idle time accounting
    > >
    > > Show C1 idle time in /sysfs cpuidle interface. C1 idle time may not
    > > be entirely accurate in all cases. It includes the time spent
    > > in the interrupt handler after wakeup with "hlt" based C1.
    > >But, it will
    > > be accurate with "mwait" based C1.
    > >
    > >
    > >Reverting the commit brings my laptop back to C2.
    > >

    >
    > Thanks for the bisect info. I will look at the bad side effects that patch
    > may be having and I should have a patch for you to test later today....
    >


    Jan replied later on this issue that he is not able to reproduce this problem
    any more. Looking at the above, I could see a potential problem where
    menu governor may get confused by the C-state residency time from poll
    idle or C1 idle, where this timing info is not accurate. This inaccuracy is
    due to interrupts being handled before we account for C-state exit.

    Patch below fixes this and is needed regardless of the issue pointed out by
    Jan Willies here. But, I am suspecting that the patch will also fix the
    problem reported by Jan.

    Do not mark TIME_VALID for CO poll state.
    Mark C1 time as valid only with mwait (CSTATE_FFH) entry method.

    This makes governors use the timing information only when it is correct and
    eliminates any wrong policy decisions that may result from invalid timing
    information.

    Signed-off-by: Venkatesh Pallipadi

    Index: linux-2.6.git/drivers/acpi/processor_idle.c
    ================================================== =================
    --- linux-2.6.git.orig/drivers/acpi/processor_idle.c 2008-02-15 02:18:14.000000000 -0800
    +++ linux-2.6.git/drivers/acpi/processor_idle.c 2008-02-26 07:02:30.000000000 -0800
    @@ -1686,7 +1686,9 @@
    switch (cx->type) {
    case ACPI_STATE_C1:
    state->flags |= CPUIDLE_FLAG_SHALLOW;
    - state->flags |= CPUIDLE_FLAG_TIME_VALID;
    + if (cx->entry_method == ACPI_CSTATE_FFH)
    + state->flags |= CPUIDLE_FLAG_TIME_VALID;
    +
    state->enter = acpi_idle_enter_c1;
    dev->safe_state = state;
    break;
    Index: linux-2.6.git/drivers/cpuidle/cpuidle.c
    ================================================== =================
    --- linux-2.6.git.orig/drivers/cpuidle/cpuidle.c 2008-02-15 02:18:14.000000000 -0800
    +++ linux-2.6.git/drivers/cpuidle/cpuidle.c 2008-02-22 03:59:01.000000000 -0800
    @@ -224,7 +224,7 @@
    state->exit_latency = 0;
    state->target_residency = 0;
    state->power_usage = -1;
    - state->flags = CPUIDLE_FLAG_POLL | CPUIDLE_FLAG_TIME_VALID;
    + state->flags = CPUIDLE_FLAG_POLL;
    state->enter = poll_idle;
    }
    #else
    --
    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/

  8. Re: 100% C0 with 2.6.25-rc

    applied.

    thanks,
    -len

    On Friday 29 February 2008, Venki Pallipadi wrote:
    > On Fri, Feb 22, 2008 at 09:03:55AM -0800, Pallipadi, Venkatesh wrote:
    > >
    > >
    > > >-----Original Message-----
    > > >From: Jan Willies [mailto:jan@willies.info]
    > > >Sent: Friday, February 22, 2008 7:56 AM
    > > >To: Rafael J. Wysocki
    > > >Cc: linux-acpi@vger.kernel.org; Ingo Molnar; LKML; Thomas
    > > >Gleixner; Pallipadi, Venkatesh
    > > >Subject: Re: 100% C0 with 2.6.25-rc
    > > >
    > > >Rafael J. Wysocki wrote:
    > > >> On Thursday, 21 of February 2008, Jan Willies wrote:
    > > >>> Since 2.6.25-rc1 I have a lot of wakeups/s (≈134191,4) and
    > > >spend 100% in C0.
    > > >>> It worked fine with 2.6.24 and commandline nolapic. Without
    > > >nolapic I had 80k
    > > >>> wakeups/s after some time, but not right from the start like now.
    > > >>
    > > >> We have a regression from 2.6.24, apparently interrupts-related.
    > > >
    > > >After a lot of bisecting I've found the bad commit:
    > > >
    > > >9b12e18cdc1553de62d931e73443c806347cd974 is first bad commit
    > > >commit 9b12e18cdc1553de62d931e73443c806347cd974
    > > >Author: venkatesh.pallipadi@intel.com
    > > >Date: Thu Jan 31 17:35:05 2008 -0800
    > > >
    > > > ACPI: cpuidle: Support C1 idle time accounting
    > > >
    > > > Show C1 idle time in /sysfs cpuidle interface. C1 idle time may not
    > > > be entirely accurate in all cases. It includes the time spent
    > > > in the interrupt handler after wakeup with "hlt" based C1.
    > > >But, it will
    > > > be accurate with "mwait" based C1.
    > > >
    > > >
    > > >Reverting the commit brings my laptop back to C2.
    > > >

    > >
    > > Thanks for the bisect info. I will look at the bad side effects that patch
    > > may be having and I should have a patch for you to test later today....
    > >

    >
    > Jan replied later on this issue that he is not able to reproduce this problem
    > any more. Looking at the above, I could see a potential problem where
    > menu governor may get confused by the C-state residency time from poll
    > idle or C1 idle, where this timing info is not accurate. This inaccuracy is
    > due to interrupts being handled before we account for C-state exit.
    >
    > Patch below fixes this and is needed regardless of the issue pointed out by
    > Jan Willies here. But, I am suspecting that the patch will also fix the
    > problem reported by Jan.
    >
    > Do not mark TIME_VALID for CO poll state.
    > Mark C1 time as valid only with mwait (CSTATE_FFH) entry method.
    >
    > This makes governors use the timing information only when it is correct and
    > eliminates any wrong policy decisions that may result from invalid timing
    > information.
    >
    > Signed-off-by: Venkatesh Pallipadi
    >
    > Index: linux-2.6.git/drivers/acpi/processor_idle.c
    > ================================================== =================
    > --- linux-2.6.git.orig/drivers/acpi/processor_idle.c 2008-02-15 02:18:14.000000000 -0800
    > +++ linux-2.6.git/drivers/acpi/processor_idle.c 2008-02-26 07:02:30.000000000 -0800
    > @@ -1686,7 +1686,9 @@
    > switch (cx->type) {
    > case ACPI_STATE_C1:
    > state->flags |= CPUIDLE_FLAG_SHALLOW;
    > - state->flags |= CPUIDLE_FLAG_TIME_VALID;
    > + if (cx->entry_method == ACPI_CSTATE_FFH)
    > + state->flags |= CPUIDLE_FLAG_TIME_VALID;
    > +
    > state->enter = acpi_idle_enter_c1;
    > dev->safe_state = state;
    > break;
    > Index: linux-2.6.git/drivers/cpuidle/cpuidle.c
    > ================================================== =================
    > --- linux-2.6.git.orig/drivers/cpuidle/cpuidle.c 2008-02-15 02:18:14.000000000 -0800
    > +++ linux-2.6.git/drivers/cpuidle/cpuidle.c 2008-02-22 03:59:01.000000000 -0800
    > @@ -224,7 +224,7 @@
    > state->exit_latency = 0;
    > state->target_residency = 0;
    > state->power_usage = -1;
    > - state->flags = CPUIDLE_FLAG_POLL | CPUIDLE_FLAG_TIME_VALID;
    > + state->flags = CPUIDLE_FLAG_POLL;
    > state->enter = poll_idle;
    > }
    > #else
    > --
    > 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/
    >



    --
    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/

+ Reply to Thread