[PATCH] Consolidate default sched_clock()
Use attribute(weak). Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5e07e1ccb0
commit
b035b6de24
|
@ -90,17 +90,6 @@ static inline __u32 rpcc(void)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*
|
|
||||||
* Copied from ARM code for expediency... ;-}
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* timer_interrupt() needs to keep up the real-time clock,
|
* timer_interrupt() needs to keep up the real-time clock,
|
||||||
* as well as call the "do_timer()" routine every clocktick
|
* as well as call the "do_timer()" routine every clocktick
|
||||||
|
|
|
@ -77,16 +77,6 @@ static unsigned long dummy_gettimeoffset(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
* This is the default implementation. Sub-architecture
|
|
||||||
* implementations can override this.
|
|
||||||
*/
|
|
||||||
unsigned long long __attribute__((weak)) sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* An implementation of printk_clock() independent from
|
* An implementation of printk_clock() independent from
|
||||||
* sched_clock(). This avoids non-bootable kernels when
|
* sched_clock(). This avoids non-bootable kernels when
|
||||||
|
|
|
@ -89,14 +89,6 @@ static unsigned long gettimeoffset(void)
|
||||||
return (offset + LATCH/2) / LATCH;
|
return (offset + LATCH/2) / LATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned long next_rtc_update;
|
static unsigned long next_rtc_update;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -109,15 +109,6 @@ static void avr32_hpt_init(unsigned int count)
|
||||||
sysreg_write(COUNT, count);
|
sysreg_write(COUNT, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
/* There must be better ways...? */
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* local_timer_interrupt() does profiling and process accounting on a
|
* local_timer_interrupt() does profiling and process accounting on a
|
||||||
* per-CPU basis.
|
* per-CPU basis.
|
||||||
|
|
|
@ -216,14 +216,6 @@ cris_do_profile(struct pt_regs* regs)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
__init init_udelay(void)
|
__init init_udelay(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -118,9 +118,3 @@ int do_settimeofday(struct timespec *tv)
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(do_settimeofday);
|
EXPORT_SYMBOL(do_settimeofday);
|
||||||
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -286,11 +286,3 @@ void __init time_init(void)
|
||||||
#error no chip configuration
|
#error no chip configuration
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
|
@ -159,12 +159,3 @@ int do_settimeofday(struct timespec *tv)
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(do_settimeofday);
|
EXPORT_SYMBOL(do_settimeofday);
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in ns units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies*(1000000000/HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -174,13 +174,4 @@ int do_settimeofday(struct timespec *tv)
|
||||||
clock_was_set();
|
clock_was_set();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(do_settimeofday);
|
EXPORT_SYMBOL(do_settimeofday);
|
||||||
|
|
|
@ -455,8 +455,3 @@ EXPORT_SYMBOL(rtc_lock);
|
||||||
EXPORT_SYMBOL(to_tm);
|
EXPORT_SYMBOL(to_tm);
|
||||||
EXPORT_SYMBOL(rtc_mips_set_time);
|
EXPORT_SYMBOL(rtc_mips_set_time);
|
||||||
EXPORT_SYMBOL(rtc_mips_get_time);
|
EXPORT_SYMBOL(rtc_mips_get_time);
|
||||||
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies*(1000000000/HZ);
|
|
||||||
}
|
|
||||||
|
|
|
@ -288,17 +288,6 @@ do_settimeofday (struct timespec *tv)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(do_settimeofday);
|
EXPORT_SYMBOL(do_settimeofday);
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX: We can do better than this.
|
|
||||||
* Returns nanoseconds
|
|
||||||
*/
|
|
||||||
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void __init start_cpu_itimer(void)
|
void __init start_cpu_itimer(void)
|
||||||
{
|
{
|
||||||
unsigned int cpu = smp_processor_id();
|
unsigned int cpu = smp_processor_id();
|
||||||
|
|
|
@ -41,14 +41,6 @@ static int null_rtc_set_time(const time_t secs)
|
||||||
void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time;
|
void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time;
|
||||||
int (*rtc_sh_set_time)(const time_t) = null_rtc_set_time;
|
int (*rtc_sh_set_time)(const time_t) = null_rtc_set_time;
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long __attribute__ ((weak)) sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef CONFIG_GENERIC_TIME
|
#ifndef CONFIG_GENERIC_TIME
|
||||||
void do_gettimeofday(struct timeval *tv)
|
void do_gettimeofday(struct timeval *tv)
|
||||||
{
|
{
|
||||||
|
|
|
@ -579,12 +579,3 @@ void enter_deep_standby(void)
|
||||||
asm __volatile__ ("nop");
|
asm __volatile__ ("nop");
|
||||||
panic("Unexpected wakeup!\n");
|
panic("Unexpected wakeup!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -436,15 +436,6 @@ static inline unsigned long do_gettimeoffset(void)
|
||||||
return (*master_l10_counter >> 10) & 0x1fffff;
|
return (*master_l10_counter >> 10) & 0x1fffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns nanoseconds
|
|
||||||
* XXX This is a suboptimal implementation.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ok, my cute asm atomicity trick doesn't work anymore.
|
/* Ok, my cute asm atomicity trick doesn't work anymore.
|
||||||
* There are just too many variables that need to be protected
|
* There are just too many variables that need to be protected
|
||||||
* now (both members of xtime, et al.)
|
* now (both members of xtime, et al.)
|
||||||
|
|
|
@ -27,14 +27,6 @@
|
||||||
|
|
||||||
#define TICK_SIZE (tick_nsec / 1000)
|
#define TICK_SIZE (tick_nsec / 1000)
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current time in nanosec units.
|
|
||||||
*/
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* timer_interrupt() needs to keep up the real-time clock,
|
* timer_interrupt() needs to keep up the real-time clock,
|
||||||
* as well as call the "do_timer()" routine every clocktick
|
* as well as call the "do_timer()" routine every clocktick
|
||||||
|
|
|
@ -38,15 +38,6 @@ unsigned long ccount_nsec; /* nsec per ccount increment */
|
||||||
unsigned int last_ccount_stamp;
|
unsigned int last_ccount_stamp;
|
||||||
static long last_rtc_update = 0;
|
static long last_rtc_update = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* Scheduler clock - returns current tim in nanosec units.
|
|
||||||
*/
|
|
||||||
|
|
||||||
unsigned long long sched_clock(void)
|
|
||||||
{
|
|
||||||
return (unsigned long long)jiffies * (1000000000 / HZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
static irqreturn_t timer_interrupt(int irq, void *dev_id);
|
static irqreturn_t timer_interrupt(int irq, void *dev_id);
|
||||||
static struct irqaction timer_irqaction = {
|
static struct irqaction timer_irqaction = {
|
||||||
.handler = timer_interrupt,
|
.handler = timer_interrupt,
|
||||||
|
|
|
@ -56,6 +56,16 @@
|
||||||
|
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scheduler clock - returns current time in nanosec units.
|
||||||
|
* This is default implementation.
|
||||||
|
* Architectures and sub-architectures can override this.
|
||||||
|
*/
|
||||||
|
unsigned long long __attribute__((weak)) sched_clock(void)
|
||||||
|
{
|
||||||
|
return (unsigned long long)jiffies * (1000000000 / HZ);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert user-nice values [ -20 ... 0 ... 19 ]
|
* Convert user-nice values [ -20 ... 0 ... 19 ]
|
||||||
* to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ],
|
* to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ],
|
||||||
|
|
Loading…
Reference in New Issue