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: John Stultz <johnstul@us.ibm.com> LKML-Reference: <1279068988-21864-4-git-send-email-johnstul@us.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
ce3bf7ab22
Коммит
592913ecb8
|
@ -73,7 +73,6 @@ parameter is applicable:
|
|||
MTD MTD (Memory Technology Device) support is enabled.
|
||||
NET Appropriate network support is enabled.
|
||||
NUMA NUMA support is enabled.
|
||||
GENERIC_TIME The generic timeofday code is enabled.
|
||||
NFS Appropriate NFS support is enabled.
|
||||
OSS OSS sound support 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
|
|||
clocksource is not available, it defaults to PIT.
|
||||
Format: { pit | tsc | cyclone | pmtmr }
|
||||
|
||||
clocksource= [GENERIC_TIME] Override the default clocksource
|
||||
clocksource= Override the default clocksource
|
||||
Format: <string>
|
||||
Override the default clocksource and use the clocksource
|
||||
with the name specified.
|
||||
|
|
|
@ -47,10 +47,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_CMOS_UPDATE
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -41,10 +41,6 @@ config SYS_SUPPORTS_APM_EMULATION
|
|||
config GENERIC_GPIO
|
||||
bool
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config ARCH_USES_GETTIMEOFFSET
|
||||
bool
|
||||
default n
|
||||
|
|
|
@ -45,9 +45,6 @@ config GENERIC_IRQ_PROBE
|
|||
config RWSEM_GENERIC_SPINLOCK
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -614,9 +614,6 @@ comment "Kernel Timer/Scheduler"
|
|||
|
||||
source kernel/Kconfig.hz
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
bool "Generic clock events"
|
||||
default y
|
||||
|
|
|
@ -20,9 +20,6 @@ config RWSEM_GENERIC_SPINLOCK
|
|||
config RWSEM_XCHGADD_ALGORITHM
|
||||
bool
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CMOS_UPDATE
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -40,10 +40,6 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config TIME_LOW_RES
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -62,10 +62,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_BUG
|
||||
bool
|
||||
depends on BUG
|
||||
|
|
|
@ -82,10 +82,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME_VSYSCALL
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -44,9 +44,6 @@ config HZ
|
|||
int
|
||||
default 100
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config ARCH_USES_GETTIMEOFFSET
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -59,9 +59,6 @@ config HZ
|
|||
int
|
||||
default 100
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config ARCH_USES_GETTIMEOFFSET
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -63,10 +63,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_CMOS_UPDATE
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -48,9 +48,6 @@ config GENERIC_IRQ_PROBE
|
|||
config GENERIC_CALIBRATE_DELAY
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME_VSYSCALL
|
||||
def_bool n
|
||||
|
||||
|
|
|
@ -733,10 +733,6 @@ config GENERIC_CLOCKEVENTS
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_CMOS_UPDATE
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -46,9 +46,6 @@ config GENERIC_FIND_NEXT_BIT
|
|||
config GENERIC_HWEIGHT
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_BUG
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -66,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config TIME_LOW_RES
|
||||
bool
|
||||
depends on SMP
|
||||
|
|
|
@ -29,9 +29,6 @@ config MMU
|
|||
config GENERIC_CMOS_UPDATE
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME_VSYSCALL
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -40,9 +40,6 @@ config ARCH_HAS_ILOG2_U64
|
|||
config GENERIC_HWEIGHT
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME_VSYSCALL
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -55,9 +55,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
config GENERIC_CLOCKEVENTS
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -98,9 +98,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
config GENERIC_IOMAP
|
||||
bool
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -66,9 +66,6 @@ config BITS
|
|||
default 32 if SPARC32
|
||||
default 64 if SPARC64
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config ARCH_USES_GETTIMEOFFSET
|
||||
bool
|
||||
default y if SPARC32
|
||||
|
|
|
@ -55,10 +55,6 @@ config GENERIC_BUG
|
|||
default y
|
||||
depends on BUG
|
||||
|
||||
config GENERIC_TIME
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -72,9 +72,6 @@ config ARCH_DEFCONFIG
|
|||
default "arch/x86/configs/i386_defconfig" if X86_32
|
||||
default "arch/x86/configs/x86_64_defconfig" if X86_64
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CMOS_UPDATE
|
||||
def_bool y
|
||||
|
||||
|
@ -2046,7 +2043,7 @@ config SCx200
|
|||
|
||||
config SCx200HR_TIMER
|
||||
tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
|
||||
depends on SCx200 && GENERIC_TIME
|
||||
depends on SCx200
|
||||
default y
|
||||
---help---
|
||||
This driver provides a clocksource built upon the on-chip
|
||||
|
|
|
@ -48,9 +48,6 @@ config HZ
|
|||
int
|
||||
default 100
|
||||
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
source "init/Kconfig"
|
||||
source "kernel/Kconfig.freezer"
|
||||
|
||||
|
|
|
@ -101,7 +101,9 @@ obj-y += firmware/
|
|||
obj-$(CONFIG_CRYPTO) += crypto/
|
||||
obj-$(CONFIG_SUPERH) += 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_DCA) += dca/
|
||||
obj-$(CONFIG_HID) += hid/
|
||||
|
|
|
@ -77,7 +77,7 @@ static void power_saving_mwait_init(void)
|
|||
power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) |
|
||||
(highest_subcstate - 1);
|
||||
|
||||
#if defined(CONFIG_GENERIC_TIME) && defined(CONFIG_X86)
|
||||
#if defined(CONFIG_X86)
|
||||
switch (boot_cpu_data.x86_vendor) {
|
||||
case X86_VENDOR_AMD:
|
||||
case X86_VENDOR_INTEL:
|
||||
|
|
|
@ -264,7 +264,7 @@ int acpi_processor_resume(struct acpi_device * device)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
|
||||
#if defined(CONFIG_X86)
|
||||
static void tsc_check_state(int state)
|
||||
{
|
||||
switch (boot_cpu_data.x86_vendor) {
|
||||
|
|
|
@ -72,7 +72,7 @@ config ATMEL_TCLIB
|
|||
|
||||
config ATMEL_TCB_CLKSRC
|
||||
bool "TC Block Clocksource"
|
||||
depends on ATMEL_TCLIB && GENERIC_TIME
|
||||
depends on ATMEL_TCLIB
|
||||
default y
|
||||
help
|
||||
Select this to get a high precision clocksource based on a
|
||||
|
@ -240,7 +240,7 @@ config CS5535_MFGPT_DEFAULT_IRQ
|
|||
|
||||
config CS5535_CLOCK_EVENT_SRC
|
||||
tristate "CS5535/CS5536 high-res timer (MFGPT) events"
|
||||
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS && CS5535_MFGPT
|
||||
depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT
|
||||
help
|
||||
This driver provides a clock event source based on the MFGPT
|
||||
timer(s) in the CS5535 and CS5536 companion chips.
|
||||
|
|
|
@ -300,22 +300,6 @@ struct timespec timespec_trunc(struct timespec t, unsigned gran)
|
|||
}
|
||||
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.
|
||||
* 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.
|
||||
|
|
|
@ -6,7 +6,7 @@ config TICK_ONESHOT
|
|||
|
||||
config NO_HZ
|
||||
bool "Tickless System (Dynamic Ticks)"
|
||||
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS
|
||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||
select TICK_ONESHOT
|
||||
help
|
||||
This option enables a tickless system: timer interrupts will
|
||||
|
@ -15,7 +15,7 @@ config NO_HZ
|
|||
|
||||
config HIGH_RES_TIMERS
|
||||
bool "High Resolution Timer Support"
|
||||
depends on GENERIC_TIME && GENERIC_CLOCKEVENTS
|
||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||
select TICK_ONESHOT
|
||||
help
|
||||
This option enables high resolution timer support. If your
|
||||
|
|
|
@ -531,7 +531,7 @@ static u64 clocksource_max_deferment(struct clocksource *cs)
|
|||
return max_nsecs - (max_nsecs >> 5);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_GENERIC_TIME
|
||||
#ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
|
||||
|
||||
/**
|
||||
* clocksource_select - Select the best clocksource available
|
||||
|
@ -577,7 +577,7 @@ static void clocksource_select(void)
|
|||
}
|
||||
}
|
||||
|
||||
#else /* CONFIG_GENERIC_TIME */
|
||||
#else /* !CONFIG_ARCH_USES_GETTIMEOFFSET */
|
||||
|
||||
static inline void clocksource_select(void) { }
|
||||
|
||||
|
|
|
@ -173,8 +173,6 @@ void timekeeping_leap_insert(int leapsecond)
|
|||
update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_GENERIC_TIME
|
||||
|
||||
/**
|
||||
* timekeeping_forward_now - update clock to the current time
|
||||
*
|
||||
|
@ -376,52 +374,6 @@ void timekeeping_notify(struct clocksource *clock)
|
|||
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
|
||||
*
|
||||
|
@ -784,10 +736,11 @@ void update_wall_time(void)
|
|||
return;
|
||||
|
||||
clock = timekeeper.clock;
|
||||
#ifdef CONFIG_GENERIC_TIME
|
||||
offset = (clock->read(clock) - clock->cycle_last) & clock->mask;
|
||||
#else
|
||||
|
||||
#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
|
||||
offset = timekeeper.cycle_interval;
|
||||
#else
|
||||
offset = (clock->read(clock) - clock->cycle_last) & clock->mask;
|
||||
#endif
|
||||
timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift;
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ config IRQSOFF_TRACER
|
|||
bool "Interrupts-off Latency Tracer"
|
||||
default n
|
||||
depends on TRACE_IRQFLAGS_SUPPORT
|
||||
depends on GENERIC_TIME
|
||||
depends on !ARCH_USES_GETTIMEOFFSET
|
||||
select TRACE_IRQFLAGS
|
||||
select GENERIC_TRACER
|
||||
select TRACER_MAX_TRACE
|
||||
|
@ -175,7 +175,7 @@ config IRQSOFF_TRACER
|
|||
config PREEMPT_TRACER
|
||||
bool "Preemption-off Latency Tracer"
|
||||
default n
|
||||
depends on GENERIC_TIME
|
||||
depends on !ARCH_USES_GETTIMEOFFSET
|
||||
depends on PREEMPT
|
||||
select GENERIC_TRACER
|
||||
select TRACER_MAX_TRACE
|
||||
|
|
Загрузка…
Ссылка в новой задаче