lkml.org 
[lkml]   [2007]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [3/48] x86_64: Use new shared sched_clock in x86-64 too
    Date

    Signed-off-by: Andi Kleen <ak@suse.de>

    ---
    arch/x86_64/kernel/Makefile | 3 ++-
    arch/x86_64/kernel/time.c | 1 -
    arch/x86_64/kernel/tsc.c | 28 ----------------------------
    include/asm-x86_64/timer.h | 1 +
    include/asm-x86_64/timex.h | 1 -
    5 files changed, 3 insertions(+), 31 deletions(-)

    Index: linux/arch/x86_64/kernel/Makefile
    ===================================================================
    --- linux.orig/arch/x86_64/kernel/Makefile
    +++ linux/arch/x86_64/kernel/Makefile
    @@ -8,7 +8,7 @@ obj-y := process.o signal.o entry.o trap
    ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_x86_64.o \
    x8664_ksyms.o i387.o syscall.o vsyscall.o \
    setup64.o bootflag.o e820.o reboot.o quirks.o i8237.o \
    - pci-dma.o pci-nommu.o alternative.o hpet.o tsc.o
    + pci-dma.o pci-nommu.o alternative.o hpet.o tsc.o sched-clock.o

    obj-$(CONFIG_STACKTRACE) += stacktrace.o
    obj-$(CONFIG_X86_MCE) += mce.o therm_throt.o
    @@ -57,3 +57,4 @@ i8237-y += ../../i386/kernel/i8237.o
    msr-$(subst m,y,$(CONFIG_X86_MSR)) += ../../i386/kernel/msr.o
    alternative-y += ../../i386/kernel/alternative.o
    pcspeaker-y += ../../i386/kernel/pcspeaker.o
    +sched-clock-y += ../../i386/kernel/sched-clock.o
    Index: linux/arch/x86_64/kernel/tsc.c
    ===================================================================
    --- linux.orig/arch/x86_64/kernel/tsc.c
    +++ linux/arch/x86_64/kernel/tsc.c
    @@ -16,32 +16,6 @@ EXPORT_SYMBOL(cpu_khz);
    unsigned int tsc_khz;
    EXPORT_SYMBOL(tsc_khz);

    -static unsigned int cyc2ns_scale __read_mostly;
    -
    -void set_cyc2ns_scale(unsigned long khz)
    -{
    - cyc2ns_scale = (NSEC_PER_MSEC << NS_SCALE) / khz;
    -}
    -
    -static unsigned long long cycles_2_ns(unsigned long long cyc)
    -{
    - return (cyc * cyc2ns_scale) >> NS_SCALE;
    -}
    -
    -unsigned long long sched_clock(void)
    -{
    - unsigned long a = 0;
    -
    - /* Could do CPU core sync here. Opteron can execute rdtsc speculatively,
    - * which means it is not completely exact and may not be monotonous
    - * between CPUs. But the errors should be too small to matter for
    - * scheduling purposes.
    - */
    -
    - rdtscll(a);
    - return cycles_2_ns(a);
    -}
    -
    static int tsc_unstable;

    static inline int check_tsc_unstable(void)
    @@ -114,8 +88,6 @@ static int time_cpufreq_notifier(struct
    mark_tsc_unstable();
    }

    - set_cyc2ns_scale(tsc_khz_ref);
    -
    return 0;
    }

    Index: linux/include/asm-x86_64/timer.h
    ===================================================================
    --- /dev/null
    +++ linux/include/asm-x86_64/timer.h
    @@ -0,0 +1 @@
    +#define get_scheduled_cycles(x) rdtscll(x)
    Index: linux/arch/x86_64/kernel/time.c
    ===================================================================
    --- linux.orig/arch/x86_64/kernel/time.c
    +++ linux/arch/x86_64/kernel/time.c
    @@ -404,7 +404,6 @@ void __init time_init(void)
    else
    vgetcpu_mode = VGETCPU_LSL;

    - set_cyc2ns_scale(tsc_khz);
    printk(KERN_INFO "time.c: Detected %d.%03d MHz processor.\n",
    cpu_khz / 1000, cpu_khz % 1000);
    init_tsc_clocksource();
    Index: linux/include/asm-x86_64/timex.h
    ===================================================================
    --- linux.orig/include/asm-x86_64/timex.h
    +++ linux/include/asm-x86_64/timex.h
    @@ -28,5 +28,4 @@ extern int read_current_timer(unsigned l
    #define US_SCALE 32 /* 2^32, arbitralrily chosen */

    extern void mark_tsc_unstable(void);
    -extern void set_cyc2ns_scale(unsigned long khz);
    #endif
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-29 12:55    [W:0.033 / U:0.008 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site