From: Philippe Gerum <rpm@xenomai.org>
To: Wolfgang Mauerer <wolfgang.mauerer@domain.hid>
Cc: Jan Kiszka <jan.kiszka@domain.hid>, adeos-main@gna.org
Subject: Re: [Adeos-main] [PATCH 2/2] ipipe: CLOCK_HOST_REALTIME: x86-specific part
Date: Wed, 25 Aug 2010 10:52:29 +0200 [thread overview]
Message-ID: <1282726349.1709.21.camel@domain.hid> (raw)
In-Reply-To: <1278071401-13880-3-git-send-email-wolfgang.mauerer@domain.hid>
On Fri, 2010-07-02 at 13:50 +0200, Wolfgang Mauerer wrote:
> x86 specific mechanism to make NTP-corrected time information
> available to non-Linux domains.
>
> Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@domain.hid>
> Signed-off-by: Jan Kiszka <jan.kiszka@domain.hid>
> ---
> arch/x86/Kconfig | 1 +
> arch/x86/include/asm/tsc.h | 1 +
> arch/x86/kernel/tsc.c | 4 ++--
> arch/x86/kernel/vsyscall_64.c | 6 ++++++
> 4 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 89b72a9..4ab6f49 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -50,6 +50,7 @@ config X86
> select HAVE_KERNEL_BZIP2
> select HAVE_KERNEL_LZMA
> select HAVE_ARCH_KMEMCHECK
> + select IPIPE_HOSTRT if IPIPE && GENERIC_CLOCKEVENTS
The selection logic is rather to define HAVE_IPIPE_HOSTRT
unconditionally for x86, so that the noarch section could provide the
required bits. CONFIG_IPIPE_HOSTRT as a mean to deselect the feature for
the architecture seems overkill. As explained earlier, if we have it for
the arch, then we want it in.
GENERIC_CLOCKEVENTS is def_bool y in Kconfig for x86, so we don't really
need to depend on it.
>
> config OUTPUT_FORMAT
> string
> diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
> index c042729..aed7d66 100644
> --- a/arch/x86/include/asm/tsc.h
> +++ b/arch/x86/include/asm/tsc.h
> @@ -14,6 +14,7 @@
> */
> typedef unsigned long long cycles_t;
>
> +extern struct clocksource clocksource_tsc;
> extern unsigned int cpu_khz;
> extern unsigned int tsc_khz;
>
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 597683a..5e298a2 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -699,7 +699,7 @@ core_initcall(cpufreq_tsc);
>
> /* clocksource code */
>
> -static struct clocksource clocksource_tsc;
> +struct clocksource clocksource_tsc;
>
> /*
> * We compare the TSC to the cycle_last value in the clocksource
> @@ -745,7 +745,7 @@ static void resume_tsc(void)
> clocksource_tsc.cycle_last = 0;
> }
>
> -static struct clocksource clocksource_tsc = {
> +struct clocksource clocksource_tsc = {
> .name = "tsc",
> .rating = 300,
> .read = read_tsc,
> diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c
> index 8cb4974..f1b90f7 100644
> --- a/arch/x86/kernel/vsyscall_64.c
> +++ b/arch/x86/kernel/vsyscall_64.c
> @@ -32,6 +32,7 @@
> #include <linux/cpu.h>
> #include <linux/smp.h>
> #include <linux/notifier.h>
> +#include <linux/ipipe_tickdev.h>
>
> #include <asm/vsyscall.h>
> #include <asm/pgtable.h>
> @@ -89,6 +90,11 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
> vsyscall_gtod_data.wall_to_monotonic = wall_to_monotonic;
> vsyscall_gtod_data.wall_time_coarse = __current_kernel_time();
> write_sequnlock_irqrestore(&vsyscall_gtod_data.lock, flags);
> +
> +#ifdef CONFIG_IPIPE_HOSTRT
> + if (clock == &clocksource_tsc)
> + update_ipipe_hostrt(wall_time, clock);
> +#endif
> }
It would be nice to move the test on clock to ipipe_update_hostrt() in
order to hide all nitty-gritty details from mainline. Making the code
unconditionally compiled in removes the need to #ifdefery.
>
> /* RED-PEN may want to readd seq locking, but then the variable should be
--
Philippe.
next prev parent reply other threads:[~2010-08-25 8:52 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-02 11:49 [Adeos-main] [PATCH 0/2] Host realtime clock support Wolfgang Mauerer
2010-07-02 11:50 ` [Adeos-main] [PATCH 1/2] ipipe: Pass NTP-corrected time information from Linux to higher domains Wolfgang Mauerer
2010-08-25 8:44 ` Philippe Gerum
2010-08-25 8:50 ` Jan Kiszka
2010-08-25 8:53 ` Philippe Gerum
2010-08-25 8:58 ` Jan Kiszka
2010-08-25 9:07 ` Philippe Gerum
2010-08-25 9:19 ` Jan Kiszka
2010-08-25 9:27 ` Philippe Gerum
2010-08-25 10:25 ` Jan Kiszka
2010-08-25 11:23 ` Philippe Gerum
2010-08-26 9:38 ` Jan Kiszka
2010-08-26 10:37 ` Philippe Gerum
2010-08-26 10:47 ` Jan Kiszka
2010-08-26 10:49 ` Philippe Gerum
2010-07-02 11:50 ` [Adeos-main] [PATCH 2/2] ipipe: CLOCK_HOST_REALTIME: x86-specific part Wolfgang Mauerer
2010-07-02 13:40 ` Gilles Chanteperdrix
2010-08-25 8:52 ` Philippe Gerum [this message]
2010-08-25 8:58 ` Jan Kiszka
2010-08-25 9:20 ` Philippe Gerum
2010-08-25 9:32 ` Jan Kiszka
2010-08-25 9:38 ` Philippe Gerum
-- strict thread matches above, loose matches on Subject: below --
2010-07-08 10:20 [Adeos-main] [PATCH v2 0/2] Host realtime clock support Wolfgang Mauerer
2010-07-08 10:20 ` [Adeos-main] [PATCH 2/2] ipipe: CLOCK_HOST_REALTIME: x86-specific part Wolfgang Mauerer
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=1282726349.1709.21.camel@domain.hid \
--to=rpm@xenomai.org \
--cc=adeos-main@gna.org \
--cc=jan.kiszka@domain.hid \
--cc=wolfgang.mauerer@domain.hid \
/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.