提交 592913ec 编写于 作者: J John Stultz 提交者: Thomas Gleixner

time: Kill off CONFIG_GENERIC_TIME

Now that all arches have been converted over to use generic time via
clocksources or arch_gettimeoffset(), we can remove the GENERIC_TIME
config option and simplify the generic code.
Signed-off-by: NJohn Stultz <johnstul@us.ibm.com>
LKML-Reference: <1279068988-21864-4-git-send-email-johnstul@us.ibm.com>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 ce3bf7ab
...@@ -73,7 +73,6 @@ parameter is applicable: ...@@ -73,7 +73,6 @@ parameter is applicable:
MTD MTD (Memory Technology Device) support is enabled. MTD MTD (Memory Technology Device) support is enabled.
NET Appropriate network support is enabled. NET Appropriate network support is enabled.
NUMA NUMA support is enabled. NUMA NUMA support is enabled.
GENERIC_TIME The generic timeofday code is enabled.
NFS Appropriate NFS support is enabled. NFS Appropriate NFS support is enabled.
OSS OSS sound support is enabled. OSS OSS sound support is enabled.
PV_OPS A paravirtualized kernel is enabled. PV_OPS A paravirtualized kernel is enabled.
...@@ -468,7 +467,7 @@ and is between 256 and 4096 characters. It is defined in the file ...@@ -468,7 +467,7 @@ and is between 256 and 4096 characters. It is defined in the file
clocksource is not available, it defaults to PIT. clocksource is not available, it defaults to PIT.
Format: { pit | tsc | cyclone | pmtmr } Format: { pit | tsc | cyclone | pmtmr }
clocksource= [GENERIC_TIME] Override the default clocksource clocksource= Override the default clocksource
Format: <string> Format: <string>
Override the default clocksource and use the clocksource Override the default clocksource and use the clocksource
with the name specified. with the name specified.
......
...@@ -47,10 +47,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -47,10 +47,6 @@ config GENERIC_CALIBRATE_DELAY
bool bool
default y default y
config GENERIC_TIME
bool
default y
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
def_bool y def_bool y
......
...@@ -41,10 +41,6 @@ config SYS_SUPPORTS_APM_EMULATION ...@@ -41,10 +41,6 @@ config SYS_SUPPORTS_APM_EMULATION
config GENERIC_GPIO config GENERIC_GPIO
bool bool
config GENERIC_TIME
bool
default y
config ARCH_USES_GETTIMEOFFSET config ARCH_USES_GETTIMEOFFSET
bool bool
default n default n
......
...@@ -45,9 +45,6 @@ config GENERIC_IRQ_PROBE ...@@ -45,9 +45,6 @@ config GENERIC_IRQ_PROBE
config RWSEM_GENERIC_SPINLOCK config RWSEM_GENERIC_SPINLOCK
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
def_bool y def_bool y
......
...@@ -614,9 +614,6 @@ comment "Kernel Timer/Scheduler" ...@@ -614,9 +614,6 @@ comment "Kernel Timer/Scheduler"
source kernel/Kconfig.hz source kernel/Kconfig.hz
config GENERIC_TIME
def_bool y
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
bool "Generic clock events" bool "Generic clock events"
default y default y
......
...@@ -20,9 +20,6 @@ config RWSEM_GENERIC_SPINLOCK ...@@ -20,9 +20,6 @@ config RWSEM_GENERIC_SPINLOCK
config RWSEM_XCHGADD_ALGORITHM config RWSEM_XCHGADD_ALGORITHM
bool bool
config GENERIC_TIME
def_bool y
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
def_bool y def_bool y
......
...@@ -40,10 +40,6 @@ config GENERIC_HARDIRQS_NO__DO_IRQ ...@@ -40,10 +40,6 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
bool bool
default y default y
config GENERIC_TIME
bool
default y
config TIME_LOW_RES config TIME_LOW_RES
bool bool
default y default y
......
...@@ -62,10 +62,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -62,10 +62,6 @@ config GENERIC_CALIBRATE_DELAY
bool bool
default y default y
config GENERIC_TIME
bool
default y
config GENERIC_BUG config GENERIC_BUG
bool bool
depends on BUG depends on BUG
......
...@@ -82,10 +82,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -82,10 +82,6 @@ config GENERIC_CALIBRATE_DELAY
bool bool
default y default y
config GENERIC_TIME
bool
default y
config GENERIC_TIME_VSYSCALL config GENERIC_TIME_VSYSCALL
bool bool
default y default y
......
...@@ -44,9 +44,6 @@ config HZ ...@@ -44,9 +44,6 @@ config HZ
int int
default 100 default 100
config GENERIC_TIME
def_bool y
config ARCH_USES_GETTIMEOFFSET config ARCH_USES_GETTIMEOFFSET
def_bool y def_bool y
......
...@@ -59,9 +59,6 @@ config HZ ...@@ -59,9 +59,6 @@ config HZ
int int
default 100 default 100
config GENERIC_TIME
def_bool y
config ARCH_USES_GETTIMEOFFSET config ARCH_USES_GETTIMEOFFSET
def_bool y def_bool y
......
...@@ -63,10 +63,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -63,10 +63,6 @@ config GENERIC_CALIBRATE_DELAY
bool bool
default y default y
config GENERIC_TIME
bool
default y
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
bool bool
default y default y
......
...@@ -48,9 +48,6 @@ config GENERIC_IRQ_PROBE ...@@ -48,9 +48,6 @@ config GENERIC_IRQ_PROBE
config GENERIC_CALIBRATE_DELAY config GENERIC_CALIBRATE_DELAY
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config GENERIC_TIME_VSYSCALL config GENERIC_TIME_VSYSCALL
def_bool n def_bool n
......
...@@ -733,10 +733,6 @@ config GENERIC_CLOCKEVENTS ...@@ -733,10 +733,6 @@ config GENERIC_CLOCKEVENTS
bool bool
default y default y
config GENERIC_TIME
bool
default y
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
bool bool
default y default y
......
...@@ -46,9 +46,6 @@ config GENERIC_FIND_NEXT_BIT ...@@ -46,9 +46,6 @@ config GENERIC_FIND_NEXT_BIT
config GENERIC_HWEIGHT config GENERIC_HWEIGHT
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config GENERIC_BUG config GENERIC_BUG
def_bool y def_bool y
......
...@@ -66,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -66,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY
bool bool
default y default y
config GENERIC_TIME
bool
default y
config TIME_LOW_RES config TIME_LOW_RES
bool bool
depends on SMP depends on SMP
......
...@@ -29,9 +29,6 @@ config MMU ...@@ -29,9 +29,6 @@ config MMU
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config GENERIC_TIME_VSYSCALL config GENERIC_TIME_VSYSCALL
def_bool y def_bool y
......
...@@ -40,9 +40,6 @@ config ARCH_HAS_ILOG2_U64 ...@@ -40,9 +40,6 @@ config ARCH_HAS_ILOG2_U64
config GENERIC_HWEIGHT config GENERIC_HWEIGHT
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config GENERIC_TIME_VSYSCALL config GENERIC_TIME_VSYSCALL
def_bool y def_bool y
......
...@@ -55,9 +55,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -55,9 +55,6 @@ config GENERIC_CALIBRATE_DELAY
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
def_bool y def_bool y
config GENERIC_TIME
def_bool y
config SCHED_NO_NO_OMIT_FRAME_POINTER config SCHED_NO_NO_OMIT_FRAME_POINTER
def_bool y def_bool y
......
...@@ -98,9 +98,6 @@ config GENERIC_CALIBRATE_DELAY ...@@ -98,9 +98,6 @@ config GENERIC_CALIBRATE_DELAY
config GENERIC_IOMAP config GENERIC_IOMAP
bool bool
config GENERIC_TIME
def_bool y
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
def_bool y def_bool y
......
...@@ -66,9 +66,6 @@ config BITS ...@@ -66,9 +66,6 @@ config BITS
default 32 if SPARC32 default 32 if SPARC32
default 64 if SPARC64 default 64 if SPARC64
config GENERIC_TIME
def_bool y
config ARCH_USES_GETTIMEOFFSET config ARCH_USES_GETTIMEOFFSET
bool bool
default y if SPARC32 default y if SPARC32
......
...@@ -55,10 +55,6 @@ config GENERIC_BUG ...@@ -55,10 +55,6 @@ config GENERIC_BUG
default y default y
depends on BUG depends on BUG
config GENERIC_TIME
bool
default y
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
bool bool
default y default y
......
...@@ -72,9 +72,6 @@ config ARCH_DEFCONFIG ...@@ -72,9 +72,6 @@ config ARCH_DEFCONFIG
default "arch/x86/configs/i386_defconfig" if X86_32 default "arch/x86/configs/i386_defconfig" if X86_32
default "arch/x86/configs/x86_64_defconfig" if X86_64 default "arch/x86/configs/x86_64_defconfig" if X86_64
config GENERIC_TIME
def_bool y
config GENERIC_CMOS_UPDATE config GENERIC_CMOS_UPDATE
def_bool y def_bool y
...@@ -2046,7 +2043,7 @@ config SCx200 ...@@ -2046,7 +2043,7 @@ config SCx200
config SCx200HR_TIMER config SCx200HR_TIMER
tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
depends on SCx200 && GENERIC_TIME depends on SCx200
default y default y
---help--- ---help---
This driver provides a clocksource built upon the on-chip This driver provides a clocksource built upon the on-chip
......
...@@ -48,9 +48,6 @@ config HZ ...@@ -48,9 +48,6 @@ config HZ
int int
default 100 default 100
config GENERIC_TIME
def_bool y
source "init/Kconfig" source "init/Kconfig"
source "kernel/Kconfig.freezer" source "kernel/Kconfig.freezer"
......
...@@ -101,7 +101,9 @@ obj-y += firmware/ ...@@ -101,7 +101,9 @@ obj-y += firmware/
obj-$(CONFIG_CRYPTO) += crypto/ obj-$(CONFIG_CRYPTO) += crypto/
obj-$(CONFIG_SUPERH) += sh/ obj-$(CONFIG_SUPERH) += sh/
obj-$(CONFIG_ARCH_SHMOBILE) += sh/ obj-$(CONFIG_ARCH_SHMOBILE) += sh/
obj-$(CONFIG_GENERIC_TIME) += clocksource/ ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
obj-y += clocksource/
endif
obj-$(CONFIG_DMA_ENGINE) += dma/ obj-$(CONFIG_DMA_ENGINE) += dma/
obj-$(CONFIG_DCA) += dca/ obj-$(CONFIG_DCA) += dca/
obj-$(CONFIG_HID) += hid/ obj-$(CONFIG_HID) += hid/
......
...@@ -77,7 +77,7 @@ static void power_saving_mwait_init(void) ...@@ -77,7 +77,7 @@ static void power_saving_mwait_init(void)
power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) |
(highest_subcstate - 1); (highest_subcstate - 1);
#if defined(CONFIG_GENERIC_TIME) && defined(CONFIG_X86) #if defined(CONFIG_X86)
switch (boot_cpu_data.x86_vendor) { switch (boot_cpu_data.x86_vendor) {
case X86_VENDOR_AMD: case X86_VENDOR_AMD:
case X86_VENDOR_INTEL: case X86_VENDOR_INTEL:
......
...@@ -264,7 +264,7 @@ int acpi_processor_resume(struct acpi_device * device) ...@@ -264,7 +264,7 @@ int acpi_processor_resume(struct acpi_device * device)
return 0; return 0;
} }
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86) #if defined(CONFIG_X86)
static void tsc_check_state(int state) static void tsc_check_state(int state)
{ {
switch (boot_cpu_data.x86_vendor) { switch (boot_cpu_data.x86_vendor) {
......
...@@ -72,7 +72,7 @@ config ATMEL_TCLIB ...@@ -72,7 +72,7 @@ config ATMEL_TCLIB
config ATMEL_TCB_CLKSRC config ATMEL_TCB_CLKSRC
bool "TC Block Clocksource" bool "TC Block Clocksource"
depends on ATMEL_TCLIB && GENERIC_TIME depends on ATMEL_TCLIB
default y default y
help help
Select this to get a high precision clocksource based on a Select this to get a high precision clocksource based on a
...@@ -240,7 +240,7 @@ config CS5535_MFGPT_DEFAULT_IRQ ...@@ -240,7 +240,7 @@ config CS5535_MFGPT_DEFAULT_IRQ
config CS5535_CLOCK_EVENT_SRC config CS5535_CLOCK_EVENT_SRC
tristate "CS5535/CS5536 high-res timer (MFGPT) events" tristate "CS5535/CS5536 high-res timer (MFGPT) events"
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS && CS5535_MFGPT depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT
help help
This driver provides a clock event source based on the MFGPT This driver provides a clock event source based on the MFGPT
timer(s) in the CS5535 and CS5536 companion chips. timer(s) in the CS5535 and CS5536 companion chips.
......
...@@ -300,22 +300,6 @@ struct timespec timespec_trunc(struct timespec t, unsigned gran) ...@@ -300,22 +300,6 @@ struct timespec timespec_trunc(struct timespec t, unsigned gran)
} }
EXPORT_SYMBOL(timespec_trunc); EXPORT_SYMBOL(timespec_trunc);
#ifndef CONFIG_GENERIC_TIME
/*
* Simulate gettimeofday using do_gettimeofday which only allows a timeval
* and therefore only yields usec accuracy
*/
void getnstimeofday(struct timespec *tv)
{
struct timeval x;
do_gettimeofday(&x);
tv->tv_sec = x.tv_sec;
tv->tv_nsec = x.tv_usec * NSEC_PER_USEC;
}
EXPORT_SYMBOL_GPL(getnstimeofday);
#endif
/* Converts Gregorian date to seconds since 1970-01-01 00:00:00. /* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
* Assumes input in normal date format, i.e. 1980-12-31 23:59:59 * Assumes input in normal date format, i.e. 1980-12-31 23:59:59
* => year=1980, mon=12, day=31, hour=23, min=59, sec=59. * => year=1980, mon=12, day=31, hour=23, min=59, sec=59.
......
...@@ -6,7 +6,7 @@ config TICK_ONESHOT ...@@ -6,7 +6,7 @@ config TICK_ONESHOT
config NO_HZ config NO_HZ
bool "Tickless System (Dynamic Ticks)" bool "Tickless System (Dynamic Ticks)"
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
select TICK_ONESHOT select TICK_ONESHOT
help help
This option enables a tickless system: timer interrupts will This option enables a tickless system: timer interrupts will
...@@ -15,7 +15,7 @@ config NO_HZ ...@@ -15,7 +15,7 @@ config NO_HZ
config HIGH_RES_TIMERS config HIGH_RES_TIMERS
bool "High Resolution Timer Support" bool "High Resolution Timer Support"
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
select TICK_ONESHOT select TICK_ONESHOT
help help
This option enables high resolution timer support. If your This option enables high resolution timer support. If your
......
...@@ -531,7 +531,7 @@ static u64 clocksource_max_deferment(struct clocksource *cs) ...@@ -531,7 +531,7 @@ static u64 clocksource_max_deferment(struct clocksource *cs)
return max_nsecs - (max_nsecs >> 5); return max_nsecs - (max_nsecs >> 5);
} }
#ifdef CONFIG_GENERIC_TIME #ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
/** /**
* clocksource_select - Select the best clocksource available * clocksource_select - Select the best clocksource available
...@@ -577,7 +577,7 @@ static void clocksource_select(void) ...@@ -577,7 +577,7 @@ static void clocksource_select(void)
} }
} }
#else /* CONFIG_GENERIC_TIME */ #else /* !CONFIG_ARCH_USES_GETTIMEOFFSET */
static inline void clocksource_select(void) { } static inline void clocksource_select(void) { }
......
...@@ -173,8 +173,6 @@ void timekeeping_leap_insert(int leapsecond) ...@@ -173,8 +173,6 @@ void timekeeping_leap_insert(int leapsecond)
update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult); update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
} }
#ifdef CONFIG_GENERIC_TIME
/** /**
* timekeeping_forward_now - update clock to the current time * timekeeping_forward_now - update clock to the current time
* *
...@@ -376,52 +374,6 @@ void timekeeping_notify(struct clocksource *clock) ...@@ -376,52 +374,6 @@ void timekeeping_notify(struct clocksource *clock)
tick_clock_notify(); tick_clock_notify();
} }
#else /* GENERIC_TIME */
static inline void timekeeping_forward_now(void) { }
/**
* ktime_get - get the monotonic time in ktime_t format
*
* returns the time in ktime_t format
*/
ktime_t ktime_get(void)
{
struct timespec now;
ktime_get_ts(&now);
return timespec_to_ktime(now);
}
EXPORT_SYMBOL_GPL(ktime_get);
/**
* ktime_get_ts - get the monotonic clock in timespec format
* @ts: pointer to timespec variable
*
* The function calculates the monotonic clock from the realtime
* clock and the wall_to_monotonic offset and stores the result
* in normalized timespec format in the variable pointed to by @ts.
*/
void ktime_get_ts(struct timespec *ts)
{
struct timespec tomono;
unsigned long seq;
do {
seq = read_seqbegin(&xtime_lock);
getnstimeofday(ts);
tomono = wall_to_monotonic;
} while (read_seqretry(&xtime_lock, seq));
set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec,
ts->tv_nsec + tomono.tv_nsec);
}
EXPORT_SYMBOL_GPL(ktime_get_ts);
#endif /* !GENERIC_TIME */
/** /**
* ktime_get_real - get the real (wall-) time in ktime_t format * ktime_get_real - get the real (wall-) time in ktime_t format
* *
...@@ -784,10 +736,11 @@ void update_wall_time(void) ...@@ -784,10 +736,11 @@ void update_wall_time(void)
return; return;
clock = timekeeper.clock; clock = timekeeper.clock;
#ifdef CONFIG_GENERIC_TIME
offset = (clock->read(clock) - clock->cycle_last) & clock->mask; #ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
#else
offset = timekeeper.cycle_interval; offset = timekeeper.cycle_interval;
#else
offset = (clock->read(clock) - clock->cycle_last) & clock->mask;
#endif #endif
timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift; timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift;
......
...@@ -153,7 +153,7 @@ config IRQSOFF_TRACER ...@@ -153,7 +153,7 @@ config IRQSOFF_TRACER
bool "Interrupts-off Latency Tracer" bool "Interrupts-off Latency Tracer"
default n default n
depends on TRACE_IRQFLAGS_SUPPORT depends on TRACE_IRQFLAGS_SUPPORT
depends on GENERIC_TIME depends on !ARCH_USES_GETTIMEOFFSET
select TRACE_IRQFLAGS select TRACE_IRQFLAGS
select GENERIC_TRACER select GENERIC_TRACER
select TRACER_MAX_TRACE select TRACER_MAX_TRACE
...@@ -175,7 +175,7 @@ config IRQSOFF_TRACER ...@@ -175,7 +175,7 @@ config IRQSOFF_TRACER
config PREEMPT_TRACER config PREEMPT_TRACER
bool "Preemption-off Latency Tracer" bool "Preemption-off Latency Tracer"
default n default n
depends on GENERIC_TIME depends on !ARCH_USES_GETTIMEOFFSET
depends on PREEMPT depends on PREEMPT
select GENERIC_TRACER select GENERIC_TRACER
select TRACER_MAX_TRACE select TRACER_MAX_TRACE
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册