LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu> To: Daniel Walker <dwalker@mvista.com> Cc: akpm@osdl.org, linux-kernel@vger.kernel.org, johnstul@us.ibm.com Subject: Re: [PATCH 11/23] clocksource: atomic signals Date: Wed, 31 Jan 2007 18:15:32 +0100 [thread overview] Message-ID: <20070131171532.GC4468@elte.hu> (raw) In-Reply-To: <1170259185.9781.66.camel@imap.mvista.com> * Daniel Walker <dwalker@mvista.com> wrote: > > I see little difference between your and John's code: both poll > > something - you poll an atomic "did a new clocksource arrive" flag > > in the timer interrupt, John takes the clocksource_lock spinlock and > > checks a "did a new clocksource arrive" variable. Both are global > > atomic variables in essence. > > The original version has more operations on every timer interrupt. > Also changing the spinlock to an atomic eliminates the possibility of > contention in the timer interrupt .. there is precisely /zero/ contention on the clocksource_lock! It is a very short-held lock, and it's only held by the timer interrupt and some really rare operations like 'clocksource register' or 'show clocksources'. > > what i'd see as a real cleanup here would be to get away from this > > 'poll whether there's any clocksource update' model, and to just > > ensure that a running timer irq will always see the latest > > clocksource. I.e. to run the change_clocksource() logic (and the > > following updates) when a new clock source is selected - not when > > the next timer interrupt runs. That would propagate all effects of a > > new clock source immediately. > > You could reduce the code in the interrupt handler (which is good), > but I think you'll end up with a polling model regardless.. If you add > some locking between the interrupt handler and something else you may > as well add the run time of that new critical section to the timer > latency . So I'm not sure it would be a outright win .. I think you didnt understand what i said: the point is to /remove/ the polling, and to replace it with a natural lock that is held anyway: xtime_lock or whatever other exclusion mechanism. Again, there is almost /never/ any contention on this lock so there's no 'latency to add'. But the polling overhead in every timer irq, even if it's just a single atomic flag, does add up in every timer tick. you also didnt seem to understand my other point: > > I.e. to run the change_clocksource() logic (and the following > > updates) when a new clock source is selected - not when the next > > timer interrupt runs. That would propagate all effects of a new > > clock source immediately. that is actually more important from a design cleanliness POV than the basic avoidance of some polling overhead. Ingo
next prev parent reply other threads:[~2007-01-31 17:17 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-01-31 3:37 [PATCH 00/23] clocksource update v12 Daniel Walker 2007-01-31 3:37 ` [PATCH 01/23] clocksource: drop clocksource-add-verification-watchdog-helper-fix.patch Daniel Walker 2007-01-31 12:47 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 02/23] clocksource: drop clocksource-add-verification-watchdog-helper.patch Daniel Walker 2007-01-31 3:37 ` [PATCH 03/23] clocksource: drop clocksource-remove-the-update-callback.patch Daniel Walker 2007-01-31 3:37 ` [PATCH 04/23] clocksource: drop time-x86_64-tsc-fixup-clocksource-changes.patch Daniel Walker 2007-01-31 3:37 ` [PATCH 05/23] clocksource: drop simplify-the-registration-of-clocksources.patch Daniel Walker 2007-01-31 3:37 ` [PATCH 06/23] timekeeping: create kernel/time/timekeeping.c Daniel Walker 2007-01-31 8:59 ` Ingo Molnar 2007-01-31 15:05 ` Daniel Walker 2007-01-31 3:37 ` [PATCH 07/23] clocksource: rating sorted list Daniel Walker 2007-01-31 9:34 ` Ingo Molnar 2007-01-31 15:07 ` Daniel Walker 2007-01-31 3:37 ` [PATCH 08/23] clocksource: drop duplicate register checking Daniel Walker 2007-01-31 9:59 ` Ingo Molnar 2007-01-31 15:13 ` Daniel Walker 2007-01-31 17:19 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 09/23] clocksource: add block notifier Daniel Walker 2007-01-31 10:17 ` Ingo Molnar 2007-01-31 15:25 ` Daniel Walker 2007-01-31 17:22 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 10/23] clocksource: remove update_callback Daniel Walker 2007-01-31 10:46 ` Ingo Molnar 2007-01-31 15:42 ` Daniel Walker 2007-01-31 17:18 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 11/23] clocksource: atomic signals Daniel Walker 2007-01-31 11:07 ` Ingo Molnar 2007-01-31 15:59 ` Daniel Walker 2007-01-31 17:15 ` Ingo Molnar [this message] 2007-01-31 3:37 ` [PATCH 12/23] clocksource: add clocksource_get_clock() Daniel Walker 2007-01-31 11:46 ` Ingo Molnar 2007-01-31 16:40 ` Daniel Walker 2007-01-31 3:37 ` [PATCH 13/23] timekeeping: move sysfs layer/drop API calls Daniel Walker 2007-01-31 11:49 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 14/23] clocksource: increase initcall priority Daniel Walker 2007-01-31 11:50 ` Ingo Molnar 2007-01-31 16:42 ` Daniel Walker 2007-01-31 17:10 ` Ingo Molnar 2007-01-31 17:20 ` Daniel Walker 2007-01-31 17:29 ` Thomas Gleixner 2007-01-31 3:37 ` [PATCH 15/23] clocksource: add new flags Daniel Walker 2007-01-31 3:37 ` [PATCH 16/23] clocksource: arm update for " Daniel Walker 2007-01-31 12:27 ` Ingo Molnar 2007-01-31 3:37 ` [PATCH 17/23] clocksource: avr32 " Daniel Walker 2007-01-31 3:37 ` [PATCH 18/23] clocksource: i386 " Daniel Walker 2007-01-31 3:37 ` [PATCH 19/23] clocksource: mips " Daniel Walker 2007-01-31 3:37 ` [PATCH 20/23] clocksource: x86_64 " Daniel Walker 2007-01-31 3:37 ` [PATCH 21/23] clocksource: drivers/ " Daniel Walker 2007-01-31 3:37 ` [PATCH 22/23] clocksource: new clock lookup method Daniel Walker [not found] ` <20070131122215.GE1847@elte.hu> [not found] ` <1170261439.9781.96.camel@imap.mvista.com> [not found] ` <20070131164918.GA4468@elte.hu> [not found] ` <1170265169.9781.145.camel@imap.mvista.com> 2007-01-31 17:55 ` Thomas Gleixner 2007-01-31 18:07 ` Daniel Walker 2007-01-31 21:09 ` Thomas Gleixner 2007-01-31 3:37 ` [PATCH 23/23] clocksource tsc: add verify routine Daniel Walker 2007-01-31 12:43 ` Ingo Molnar 2007-01-31 17:02 ` Daniel Walker 2007-01-31 17:22 ` Thomas Gleixner 2007-01-31 17:33 ` Ingo Molnar
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=20070131171532.GC4468@elte.hu \ --to=mingo@elte.hu \ --cc=akpm@osdl.org \ --cc=dwalker@mvista.com \ --cc=johnstul@us.ibm.com \ --cc=linux-kernel@vger.kernel.org \ /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: linkBe 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; as well as URLs for NNTP newsgroup(s).