public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: Frank Sorenson <frank@tuxrocks.com>
Cc: Tony Lindgren <tony@atomide.com>,
	linux-kernel@vger.kernel.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Pavel Machek <pavel@suse.cz>,
	Arjan van de Ven <arjan@infradead.org>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Andrea Arcangeli <andrea@suse.de>,
	George Anzinger <george@mvista.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	john stultz <johnstul@us.ibm.com>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	Lee Revell <rlrevell@joe-job.com>
Subject: Re: [PATCH] Updated: Dynamic Tick version 050408-1
Date: Fri, 08 Apr 2005 13:33:54 +0200	[thread overview]
Message-ID: <42566C22.4040509@suse.de> (raw)
In-Reply-To: <42564584.4080606@tuxrocks.com>

Frank Sorenson wrote:
> Tony Lindgren wrote:
> | * Tony Lindgren <tony@atomide.com> [050407 23:28]:
> |
> |>I think I have an idea on what's going on; Your system does not wake to
> |>APIC interrupt, and the system timer updates time only on other
> interrupts.
> |>I'm experiencing the same on a loaner ThinkPad T30.
> |>
> |>I'll try to do another patch today. Meanwhile it now should work
> |>without lapic in cmdline.
> |
> |
> | Following is an updated patch. Anybody having trouble, please try
> | disabling CONFIG_DYN_TICK_USE_APIC Kconfig option.
> |
> | I'm hoping this might work on Pavel's machine too?
> |
> | Tony
> 
> This updated patch seems to work just fine on my machine with lapic on
> the cmdline and CONFIG_DYN_TICK_USE_APIC disabled.
> 
> Also, you were correct that removing lapic from the cmdline allowed the
> previous version to run at full speed.
> 
> Now, how can I tell if the patch is doing its thing?  What should I be
> seeing? :)
> 
> Functionally, it looks like it's working.  There were a number of
> compiler warnings you might wish to fix before calling it good.  Such as
> "initialization from incompatible pointer type" several times in
> dyn-tick-timer.c and a "too many arguments for format" in
> dyn_tick_late_init.
> 

Here are some figures about idle/C-states:

Passing bm_history=0xF to processor module makes it going into C3 and deeper.
Passing lower values, deeper states are reached more often, but system could freeze:

bm_activity=0x4
bus master activity:     fefffffd
states:
    C1:                  type[C1] promotion[C2] demotion[--] latency[001] usage[00000010]
   *C2:                  type[C2] promotion[C3] demotion[C1] latency[001] usage[00007183]
    C3:                  type[C3] promotion[C4] demotion[C2] latency[085] usage[00000515]
    C4:                  type[C3] promotion[--] demotion[C3] latency[185] usage[00000330]

bm_activity=0x1
bus master activity:     ffff7ffd
states:
    C1:                  type[C1] promotion[C2] demotion[--] latency[001] usage[00000010]
   *C2:                  type[C2] promotion[C3] demotion[C1] latency[001] usage[00005495]
    C3:                  type[C3] promotion[C4] demotion[C2] latency[085] usage[00000537]
    C4:                  type[C3] promotion[--] demotion[C3] latency[185] usage[00000472]


Figures NO_IDLE_HZ disabled, HZ=1000 (max sleep 1ms)
(Don't trust the figures too much, there probably are little bugs...):

Active C0/C1 state:
Total(ms):    145
Usage:        20205
Failures:     0
Maximum(us):  1967
Average(us):  7
Sleep  C2 state:
Total(ms):    19306
Usage:        20074
Failures:     0
Maximum(us):  1275            (-> strange max should be 1000us)
Average(us):  961
Sleep  C3 state:
Total(ms):    34
Usage:        131
Failures:     0
Maximum(us):  984
Average(us):  259
Measures based on ACPI PM timer reads

Total switches between C-states:  20205
Switches between C-states per second:  1063 per second
Total measure time (s):  19
Total measure time (based on starting measures) (s):  20


Figures NO_IDLE_HZ enabled, processor.bm_history=0xF HZ=1000:
(Don't trust the figures too much, there probably are little bugs...):

Active C0/C1 state:
Total(ms):    81
Usage:        4659
Failures:     0
Maximum(us):  1608
Average(us):  17
Sleep  C2 state:
Total(ms):    71108
Usage:        4241
Failures:     0
Maximum(us):  49921
Average(us):  16766
Sleep  C3 state:
Total(ms):    219
Usage:        167
Failures:     0
Maximum(us):  28296
Average(us):  1311
Sleep  C4 state:
Total(ms):    374
Usage:        251
Failures:     0
Maximum(us):  18870
Average(us):  1490
Measures based on ACPI PM timer reads

Total switches between C-states:  4659
Switches between C-states per second:  65 per second
Total measure time (s):  71
Total measure time (based on starting measures) (s):  75


I buffer C-state times in an array and write them to /dev/cstX.
>From there I calc the stats from userspace.

Tony: If you like I can send you the patch and dump prog for
http://www.muru.com/linux/dyntick/ ?

I try to find a better algorithm (directly adjust slept time to
C-state latency or something) for NO_IDLE_HZ (hints are very welcome)
and try to come up with new figures soon.


         Thomas

  parent reply	other threads:[~2005-04-08 11:34 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-06  8:30 [PATCH] Dynamic Tick version 050406-1 Tony Lindgren
2005-04-06 21:16 ` Frank Sorenson
2005-04-07  8:21   ` Tony Lindgren
2005-04-07  9:26     ` Alexander Nyberg
2005-04-08  6:22       ` Tony Lindgren
2005-04-07 21:35     ` Frank Sorenson
2005-04-07 22:20       ` Frank Sorenson
2005-04-08  6:25         ` Tony Lindgren
2005-04-08  7:50           ` [PATCH] Updated: Dynamic Tick version 050408-1 Tony Lindgren
2005-04-08  8:49             ` Frank Sorenson
2005-04-08  9:17               ` Tony Lindgren
2005-04-08 21:42                 ` Frank Sorenson
2005-04-09  8:09                   ` Tony Lindgren
2005-04-08 11:33               ` Thomas Renninger [this message]
2005-04-08 11:55                 ` Tony Lindgren
2005-04-08 12:58                   ` Thomas Renninger
2005-04-09  8:22                     ` Tony Lindgren
2005-04-19 14:56                   ` [PATCH] Updated: Dynamic Tick version 050408-1 - C-state measures Thomas Renninger
2005-04-19 15:27                     ` Dominik Brodowski
2005-04-19 21:03                       ` Thomas Renninger
2005-04-20 11:44                         ` Dominik Brodowski
2005-04-20 11:57                           ` Pavel Machek
2005-04-20 12:01                             ` Dominik Brodowski
2005-04-20 12:08                               ` Pavel Machek
2005-04-20 12:13                                 ` Dominik Brodowski
2005-04-20 12:24                           ` Thomas Renninger
2005-04-19 21:09                     ` Pavel Machek
2005-04-20 20:01                       ` Tony Lindgren
2005-04-21  7:54                         ` Thomas Renninger
2005-04-08 10:28             ` [PATCH] Updated: Dynamic Tick version 050408-1 Pavel Machek
2005-04-08 10:54               ` Tony Lindgren
2005-04-08 12:24                 ` Pavel Machek
2005-04-09  9:56                 ` Pavel Machek
2005-04-14 19:41                   ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42566C22.4040509@suse.de \
    --to=trenn@suse.de \
    --cc=andrea@suse.de \
    --cc=arjan@infradead.org \
    --cc=benh@kernel.crashing.org \
    --cc=frank@tuxrocks.com \
    --cc=george@mvista.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    --cc=rlrevell@joe-job.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    --cc=zwane@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox