From: Tony Lindgren <tony@atomide.com>
To: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: Con Kolivas <kernel@kolivas.org>,
linux-kernel@vger.kernel.org, ck@vds.kolivas.org,
tuukka.tikkanen@elektrobit.com, george@mvista.com,
Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 3
Date: Mon, 8 Aug 2005 08:20:08 -0700 [thread overview]
Message-ID: <20050808152008.GI28070@atomide.com> (raw)
In-Reply-To: <20050808145421.GB4738@in.ibm.com>
* Srivatsa Vaddagiri <vatsa@in.ibm.com> [050808 07:53]:
> On Mon, Aug 08, 2005 at 12:26:01AM -0700, Tony Lindgren wrote:
> > Good point, and it would be nice to have it resolved for systems that support
> > idling individual CPUs. The current setup was done because when I was tinkering
> > with the amd76x_pm patch a while a back, I noticed that idling the cpu
> > disconnects all cpus from the bus. (As far as I remember)
> > So this may need to be configured depending on the system.
>
> What do you mean by "idling" a cpu? Is it reprogramming the timer source
> to skip ticks? Or putting the cpu actually in some low-power state?
> And what do you mean by "disconnect all CPUs from the bus"? Is it
> the system bus? And what happens if the CPUs are disconnected from
> the bus like this while it is executing?
As far as I remember enabling AMD stop grant disconnects all cpus. This
means the system won't be able to do any work until the dyntick timer
interrupt wakes up the system.
> Both requirements (idling all CPUs together vs individually) I think
> will make the patch more complex. Are such systems (which require having to
> idle all CPUs together) pretty common that we have to care about?!
Probably all AMD SMP based systems? Somebody with better knowledge should
verify this.
> > > - All CPUs seem to cut off the same number of ticks (dyn_tick->skip). Isn't
> > > this wrong, considering that the timer list is per-CPU? This will cause
> > > some timers to be serviced much later than usual.
> >
> > Yes if it's done on per-CPU basis. In the current setup the first interrupt
> > will kick the system off the dyn-tick state and the timers get checked again.
>
> But that may be too late on some CPUs. If dyn_tick->skip = 100, all
> CPUs skip 100 ticks. However some CPUs may have timers that need to be
> service much before that.
Not in the current case, as the system is completely idle until some
interrupt wakes up the system. Of course it would be different if you make
it per-CPU.
> > > - The fact that dyn_tick_state is global and accessed from all CPUs
> > > is probably a scalability concern, especially if we allow the ticks
> > > to be cut off on per-CPU basis.
> >
> > >From idling devices point of view, we still need some global variable I
> > believe. How else would you be able to tell all devices that the whole
> > system does not have any timers for next 2 seconds?
>
> Why would anyone want to know that? Moreover, when we enable this
> per-CPU, the no-timer-interval is also distributed across CPUs.
Well we need to be able to do various things in the idle loop depending on
the length of the estimated sleep. For example, if next_timer_interrupt is
2 jiffies away, we cannot do much. But if next_timer_interrupt is 2 seconds
away, we can idle pretty much all devices.
> > But in any case on P4 systems the APIC timer is not the bottleneck as
> > stopping or reprogramming PIT also kills APIC. (This does not happen on P3
> > systems). So the bottleneck most likely is the length of PIT.
>
> On these systems, do you disabled APIC (dyntick=noapic)?
Yeah. It only seems to work on P3 systems.
> > HRT + VST depend on APIC only, and does not use next_timer_interrupt().
>
> AFAIK, it supports pm timer too and yes it has its own implementation
> of next_timer_interrupt, which makes it more work for merging.
> At this point, looks like dyn-tick is gaining more momentum and is
> more likely a candidate for merging. I will send out my SMP-support
> changes to dynamic tick soon.
Cool :) Sounds like SMP and HPET are about the only things that still need
work. Or can somebody think of anything else?
> > You may also want to check out the ARM implementation as it does not have
> > the issues listed above, which are mostly x86 specific issues.
>
> Thanks for the pointer. Will look at it.
OK
Tony
next prev parent reply other threads:[~2005-08-08 15:20 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-03 5:59 [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 3 Con Kolivas
2005-08-03 11:54 ` Jan De Luyck
2005-08-03 12:14 ` Con Kolivas
2005-08-03 14:23 ` Jan De Luyck
2005-08-04 15:03 ` Vojtech Pavlik
2005-08-05 5:12 ` Con Kolivas
2005-08-03 19:20 ` Jim MacBaine
2005-08-03 21:16 ` Con Kolivas
2005-08-03 22:22 ` Jim MacBaine
2005-08-03 22:52 ` Con Kolivas
2005-08-04 5:34 ` Jim MacBaine
2005-08-04 6:59 ` Jim MacBaine
2005-08-04 7:04 ` Con Kolivas
2005-08-04 7:12 ` Con Kolivas
2005-08-04 7:29 ` Tony Lindgren
2005-08-10 20:04 ` Bill Davidsen
2005-08-14 19:47 ` Pavel Machek
2005-08-15 1:43 ` Zwane Mwaikambo
2005-08-15 12:52 ` Con Kolivas
2005-08-15 15:39 ` Zwane Mwaikambo
2005-08-03 19:54 ` Jeffrey Hundstad
2005-08-03 20:07 ` Valdis.Kletnieks
2005-08-03 21:13 ` Con Kolivas
2005-08-03 23:22 ` Christian Leber
2005-08-04 16:25 ` Marc Ballarin
2005-08-04 5:09 ` Jan De Luyck
2005-08-04 5:07 ` Con Kolivas
2005-08-04 5:34 ` Jan De Luyck
2005-08-04 21:15 ` [PATCH] Timer Top was: " Daniel Petrini
2005-08-05 4:05 ` [PATCH] Timer Top tweaks Con Kolivas
2005-08-05 6:46 ` [ck] [PATCH] Timer Top was: i386 No-Idle-Hz aka Dynamic-Ticks 3 Jens Axboe
2005-08-05 12:39 ` Daniel Petrini
2005-08-05 13:55 ` Daniel Petrini
2005-08-04 21:44 ` [PATCH] " Adrian Bunk
2005-08-04 22:12 ` Marc Ballarin
2005-08-05 0:31 ` Con Kolivas
2005-08-05 1:30 ` Paul
2005-08-05 3:25 ` Con Kolivas
2005-08-05 12:37 ` Srivatsa Vaddagiri
2005-08-05 13:08 ` Con Kolivas
2005-08-05 16:39 ` [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 4 Con Kolivas
2005-08-06 17:47 ` Adrian Bunk
2005-08-07 5:12 ` [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 5 Con Kolivas
2005-08-07 16:58 ` Srivatsa Vaddagiri
2005-08-07 23:51 ` Con Kolivas
2005-08-08 1:20 ` Kyle Moffett
2005-08-08 1:30 ` Con Kolivas
2005-08-08 1:45 ` [ck] " Gabriel Devenyi
2005-08-08 2:44 ` Srivatsa Vaddagiri
2005-08-08 7:05 ` Nigel Cunningham
2005-08-08 7:38 ` Tony Lindgren
2005-08-08 15:06 ` Srivatsa Vaddagiri
2005-08-09 19:36 ` George Anzinger
2005-08-10 14:05 ` Srivatsa Vaddagiri
2005-08-10 22:37 ` George Anzinger
2005-08-11 21:33 ` Bill Davidsen
2005-08-12 15:13 ` George Anzinger
2005-08-08 15:08 ` Folkert van Heusden
2005-08-08 15:16 ` Daniel Petrini
2005-08-08 7:26 ` [PATCH] i386 No-Idle-Hz aka Dynamic-Ticks 3 Tony Lindgren
2005-08-08 14:54 ` Srivatsa Vaddagiri
2005-08-08 15:20 ` Tony Lindgren [this message]
2005-08-09 14:22 ` Zwane Mwaikambo
2005-08-10 7:46 ` Tony Lindgren
2005-08-09 20:05 ` George Anzinger
2005-08-09 20:22 ` Daniel Petrini
2005-08-10 8:02 ` Tony Lindgren
2005-08-10 22:40 ` George Anzinger
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=20050808152008.GI28070@atomide.com \
--to=tony@atomide.com \
--cc=akpm@osdl.org \
--cc=ck@vds.kolivas.org \
--cc=george@mvista.com \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tuukka.tikkanen@elektrobit.com \
--cc=vatsa@in.ibm.com \
/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