On Wed, 2010-08-25 at 10:58 +0200, Jan Kiszka wrote:
> Philippe Gerum wrote:
> > 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 <[email protected]>
> >> Signed-off-by: Jan Kiszka <[email protected]>
> >> ---
> >>  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.
> 
> You are looking at an older version of this patch, v2 only contains
> "select HAVE_IPIPE_HOSTRT".

True, sorry.

> 
> > 
> >>  
> >>  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.
> 
> This code is arch-specific while update_ipipe_hostrt is generic.
> 

We don't need #ifdefery with the conditional definition of
ipipe_update_hostrt() in ipipe_tickdev.h.

> Jan
> 

-- 
Philippe.



_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to