From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Tony Breeds <tony@bakeyournoodle.com>
Cc: Andrew Morton <akpm@osdl.org>, Daniel Walker <dwalker@mvista.com>,
john stultz <johnstul@us.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
LinuxPPC-dev <linuxppc-dev@ozlabs.org>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>
Subject: Re: [RFC] clocksouce implementation for powerpc
Date: Wed, 20 Jun 2007 20:53:47 +0400 [thread overview]
Message-ID: <46795B9B.2020401@ru.mvista.com> (raw)
In-Reply-To: <20070620065710.GR9768@bakeyournoodle.com>
Hello.
Tony Breeds wrote:
>>>plain text document attachment
>>>(clocksource-add-settimeofday-hook.patch)
>>>From: Tony Breeds <tony@bakeyournoodle.com >
>>>I'm working on a clocksource implementation for all powerpc platforms.
>>>some of these platforms needs to do a little work as part of the
>>>settimeofday() syscall and I can't see a way to do that without adding
>>>this hook to clocksource.
>>I'd like to see how this is used? If the code that uses this API change
>>isn't ready yet, then this patch should really wait..
> This is my current patch to rework arch/powerpc/kernel/time.c to create
> a clocksource. It's not ready for inclusion.
I guess it's been based on the prior work by John Stultz (and me too :-)?
> powerpc needs to keep the vdso in sync whenener settimeodfay() is
> called. Adding the hook the to the clocksource structure was my way of
> allowing this to happen. There are other approaches, but this seemed to
> best allow for runtime. Initially I considered using update_vsyscall()
> but this is called from do_timer(), and I don't need this code run then
> :(
> This has been booted on pSeries and iSeries (I'm using glibc 2.5, which
> uses the vdso gettimeoday())
[...]
> Index: working/arch/powerpc/kernel/time.c
> ===================================================================
> --- working.orig/arch/powerpc/kernel/time.c
> +++ working/arch/powerpc/kernel/time.c
> @@ -74,6 +74,30 @@
> #endif
> #include <asm/smp.h>
>
> +/* powerpc clocksource/clockevent code */
> +
> +/* TODO:
> + * o Code style
> + * * Variable names ... be consistent.
> + *
> + * TODO: Clocksource
> + * o Need a _USE_RTC() clocksource impelementation
> + * o xtime: Either time.c manages it, or clocksource does, not both
If you mean the init. part, this has been already done by me -- I've
implemented read_persistent_clock() and got rid of xtime setting. What's left
is to implemet update_persistent_clock() and get rid of timer_check_rtc()...
> + */
> +
> +#include <linux/clocksource.h>
> +
> +static struct clocksource clocksource_timebase = {
> + .name = "timebase",
> + .rating = 200,
Perhaps we even need to raise the rating to 300 or 400 -- according to
what <linux/clocksource.h> says?
> + .flags = CLOCK_SOURCE_IS_CONTINUOUS,
> + .mask = CLOCKSOURCE_MASK(64),
> + .shift = 22,
PPC64 has issues with the fixed shift value, see:
http://patchwork.ozlabs.org/linuxppc/patch?id=11125
> + .mult = 0, /* To be filled in */
> + .read = NULL, /* To be filled in */
> + .settimeofday = NULL, /* To be filled in */
I don't quite understand why not just init them right away? The values
are fixed anyways.
> +};
> +
> /* keep track of when we need to update the rtc */
> time_t last_rtc_update;
> #ifdef CONFIG_PPC_ISERIES
[...]
> @@ -666,8 +631,8 @@ void timer_interrupt(struct pt_regs * re
> if (per_cpu(last_jiffy, cpu) >= tb_next_jiffy) {
> tb_last_jiffy = tb_next_jiffy;
> do_timer(1);
> - timer_recalc_offset(tb_last_jiffy);
> - timer_check_rtc();
> + /* timer_recalc_offset() && timer_check_rtc()
> + * are now called from update_vsyscall() */
I.e. in the softirq context...
[...]
WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Tony Breeds <tony@bakeyournoodle.com>
Cc: Daniel Walker <dwalker@mvista.com>, Andrew Morton <akpm@osdl.org>,
john stultz <johnstul@us.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
LinuxPPC-dev <linuxppc-dev@ozlabs.org>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>
Subject: Re: [RFC] clocksouce implementation for powerpc
Date: Wed, 20 Jun 2007 20:53:47 +0400 [thread overview]
Message-ID: <46795B9B.2020401@ru.mvista.com> (raw)
In-Reply-To: <20070620065710.GR9768@bakeyournoodle.com>
Hello.
Tony Breeds wrote:
>>>plain text document attachment
>>>(clocksource-add-settimeofday-hook.patch)
>>>From: Tony Breeds <tony@bakeyournoodle.com >
>>>I'm working on a clocksource implementation for all powerpc platforms.
>>>some of these platforms needs to do a little work as part of the
>>>settimeofday() syscall and I can't see a way to do that without adding
>>>this hook to clocksource.
>>I'd like to see how this is used? If the code that uses this API change
>>isn't ready yet, then this patch should really wait..
> This is my current patch to rework arch/powerpc/kernel/time.c to create
> a clocksource. It's not ready for inclusion.
I guess it's been based on the prior work by John Stultz (and me too :-)?
> powerpc needs to keep the vdso in sync whenener settimeodfay() is
> called. Adding the hook the to the clocksource structure was my way of
> allowing this to happen. There are other approaches, but this seemed to
> best allow for runtime. Initially I considered using update_vsyscall()
> but this is called from do_timer(), and I don't need this code run then
> :(
> This has been booted on pSeries and iSeries (I'm using glibc 2.5, which
> uses the vdso gettimeoday())
[...]
> Index: working/arch/powerpc/kernel/time.c
> ===================================================================
> --- working.orig/arch/powerpc/kernel/time.c
> +++ working/arch/powerpc/kernel/time.c
> @@ -74,6 +74,30 @@
> #endif
> #include <asm/smp.h>
>
> +/* powerpc clocksource/clockevent code */
> +
> +/* TODO:
> + * o Code style
> + * * Variable names ... be consistent.
> + *
> + * TODO: Clocksource
> + * o Need a _USE_RTC() clocksource impelementation
> + * o xtime: Either time.c manages it, or clocksource does, not both
If you mean the init. part, this has been already done by me -- I've
implemented read_persistent_clock() and got rid of xtime setting. What's left
is to implemet update_persistent_clock() and get rid of timer_check_rtc()...
> + */
> +
> +#include <linux/clocksource.h>
> +
> +static struct clocksource clocksource_timebase = {
> + .name = "timebase",
> + .rating = 200,
Perhaps we even need to raise the rating to 300 or 400 -- according to
what <linux/clocksource.h> says?
> + .flags = CLOCK_SOURCE_IS_CONTINUOUS,
> + .mask = CLOCKSOURCE_MASK(64),
> + .shift = 22,
PPC64 has issues with the fixed shift value, see:
http://patchwork.ozlabs.org/linuxppc/patch?id=11125
> + .mult = 0, /* To be filled in */
> + .read = NULL, /* To be filled in */
> + .settimeofday = NULL, /* To be filled in */
I don't quite understand why not just init them right away? The values
are fixed anyways.
> +};
> +
> /* keep track of when we need to update the rtc */
> time_t last_rtc_update;
> #ifdef CONFIG_PPC_ISERIES
[...]
> @@ -666,8 +631,8 @@ void timer_interrupt(struct pt_regs * re
> if (per_cpu(last_jiffy, cpu) >= tb_next_jiffy) {
> tb_last_jiffy = tb_next_jiffy;
> do_timer(1);
> - timer_recalc_offset(tb_last_jiffy);
> - timer_check_rtc();
> + /* timer_recalc_offset() && timer_check_rtc()
> + * are now called from update_vsyscall() */
I.e. in the softirq context...
[...]
WBR, Sergei
next prev parent reply other threads:[~2007-06-20 16:52 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-16 10:36 [patch-mm 00/25] High resolution timer updates and x86_64 support - V2 Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 01/25] NOHZ: Fix nox x86 dyntick idle handling Thomas Gleixner
2007-06-16 14:36 ` Bernhard Rosenkraenzer
2007-06-16 14:54 ` Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 02/25] ACPI: Move timer broadcast and pmtimer access before C3 arbiter shutdown Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 03/25] Clockevents remove prototypes of removed functions Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 04/25] Timekeeping: Fixup shadow variable argument Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 05/25] timer.c cleanup recently introduced whitespace damage Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 06/25] clockevents: Fix resume logic Thomas Gleixner
2007-06-16 18:51 ` Separate arch patching (Re: [patch-mm 06/25] clockevents: Fix resume logic) Oleg Verych
2007-06-16 19:04 ` Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 07/25] Tick management: spread timer interrupt Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 08/25] i386: PIT stop only, when in periodic or oneshot mode Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 09/25] clockevents: Fix device replacement Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 10/25] highres: Improve debug output Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 11/25] hrtimer: speedup hrtimer_enqueue Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 12/25] pcspkr: use the global PIT lock Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 13/25] i386: hpet assumes boot cpu is 0 Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 14/25] NTP: Move the cmos update code into ntp.c Thomas Gleixner
2007-06-19 8:26 ` Franck Bui-Huu
2007-06-16 10:36 ` [patch-mm 15/25] clocksource: add settimeofday hook for PPC Thomas Gleixner
2007-06-16 15:51 ` Daniel Walker
2007-06-20 6:57 ` [RFC] clocksouce implementation for powerpc Tony Breeds
2007-06-20 6:57 ` Tony Breeds
2007-06-20 14:57 ` Daniel Walker
2007-06-20 14:57 ` Daniel Walker
2007-06-20 17:20 ` Sergei Shtylyov
2007-06-20 17:20 ` Sergei Shtylyov
2007-06-20 17:31 ` Thomas Gleixner
2007-06-20 17:31 ` Thomas Gleixner
2007-06-20 18:11 ` Sergei Shtylyov
2007-06-20 18:11 ` Sergei Shtylyov
2007-06-22 6:23 ` Tony Breeds
2007-06-22 6:23 ` Tony Breeds
2007-06-20 16:53 ` Sergei Shtylyov [this message]
2007-06-20 16:53 ` Sergei Shtylyov
2007-06-22 6:10 ` Tony Breeds
2007-06-22 6:10 ` Tony Breeds
2007-06-22 12:42 ` Sergei Shtylyov
2007-06-22 12:42 ` Sergei Shtylyov
2007-06-20 21:06 ` john stultz
2007-06-20 21:06 ` john stultz
2007-06-22 6:28 ` Tony Breeds
2007-06-22 6:28 ` Tony Breeds
2007-06-16 10:36 ` [patch-mm 16/25] x86_64: untangle asm/hpet.h from asm/timex.h Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 17/25] x86_64: Use generic cmos update Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 18/25] i386: move setup_pit_timer to the correct header file Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 19/25] x86-64: remove dead code and other janitor work in tsc.c Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 20/25] x86_64: Convert to cleckevents Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 21/25] x86_64: hpet restore vread Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 22/25] x86_64: restore restore nohpet cmdline Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 23/25] x86-64 block irq balancing for timer Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 24/25] x86_64: prep idle loop for dynticks Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 25/25] x86_64: enable high resolution timers and dynticks Thomas Gleixner
2007-06-16 14:41 ` [patch-mm 00/25] High resolution timer updates and x86_64 support - V2 Alistair John Strachan
2007-06-16 19:06 ` Thomas Gleixner
2007-06-16 23:04 ` Nigel Cunningham
2007-06-18 20:06 ` Valdis.Kletnieks
2007-06-18 20:24 ` Pallipadi, Venkatesh
2007-06-18 21:49 ` Valdis.Kletnieks
2007-06-18 22:10 ` Pallipadi, Venkatesh
2007-06-19 11:28 ` Valdis.Kletnieks
2007-06-19 1:52 ` Arjan van de Ven
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=46795B9B.2020401@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=akpm@osdl.org \
--cc=dwalker@mvista.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=tony@bakeyournoodle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.