aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-06-15 13:06:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-15 13:06:19 -0400
commit19035e5b5d1e3127b4925d86f6a77964f91f2c3c (patch)
treec9e7e9073970176a5b0970da715cb6430c3c9069 /include/linux
parentf9db6e095115f9411b9647bdb9d81fe11f3d8b54 (diff)
parenteea08f32adb3f97553d49a4f79a119833036000a (diff)
Merge branch 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: timers: Logic to move non pinned timers timers: /proc/sys sysctl hook to enable timer migration timers: Identifying the existing pinned timers timers: Framework for identifying pinned timers timers: allow deferrable timers for intervals tv2-tv5 to be deferred Fix up conflicts in kernel/sched.c and kernel/timer.c manually
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/clockchips.h9
-rw-r--r--include/linux/hrtimer.h7
-rw-r--r--include/linux/sched.h13
-rw-r--r--include/linux/timer.h3
4 files changed, 30 insertions, 2 deletions
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index 3a1dbba4d3a..20a100fe2b4 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -143,3 +143,12 @@ extern void clockevents_notify(unsigned long reason, void *arg);
143#endif 143#endif
144 144
145#endif 145#endif
146
147#ifdef CONFIG_GENERIC_CLOCKEVENTS
148extern ktime_t clockevents_get_next_event(int cpu);
149#else
150static inline ktime_t clockevents_get_next_event(int cpu)
151{
152 return (ktime_t) { .tv64 = KTIME_MAX };
153}
154#endif
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 0d2f7c8a33d..7400900de94 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -30,8 +30,11 @@ struct hrtimer_cpu_base;
30 * Mode arguments of xxx_hrtimer functions: 30 * Mode arguments of xxx_hrtimer functions:
31 */ 31 */
32enum hrtimer_mode { 32enum hrtimer_mode {
33 HRTIMER_MODE_ABS, /* Time value is absolute */ 33 HRTIMER_MODE_ABS = 0x0, /* Time value is absolute */
34 HRTIMER_MODE_REL, /* Time value is relative to now */ 34 HRTIMER_MODE_REL = 0x1, /* Time value is relative to now */
35 HRTIMER_MODE_PINNED = 0x02, /* Timer is bound to CPU */
36 HRTIMER_MODE_ABS_PINNED = 0x02,
37 HRTIMER_MODE_REL_PINNED = 0x03,
35}; 38};
36 39
37/* 40/*
diff --git a/include/linux/sched.h b/include/linux/sched.h
index fea9d188dbf..c900aa53007 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -261,6 +261,7 @@ extern void task_rq_unlock_wait(struct task_struct *p);
261extern cpumask_var_t nohz_cpu_mask; 261extern cpumask_var_t nohz_cpu_mask;
262#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ) 262#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ)
263extern int select_nohz_load_balancer(int cpu); 263extern int select_nohz_load_balancer(int cpu);
264extern int get_nohz_load_balancer(void);
264#else 265#else
265static inline int select_nohz_load_balancer(int cpu) 266static inline int select_nohz_load_balancer(int cpu)
266{ 267{
@@ -1796,11 +1797,23 @@ extern unsigned int sysctl_sched_child_runs_first;
1796extern unsigned int sysctl_sched_features; 1797extern unsigned int sysctl_sched_features;
1797extern unsigned int sysctl_sched_migration_cost; 1798extern unsigned int sysctl_sched_migration_cost;
1798extern unsigned int sysctl_sched_nr_migrate; 1799extern unsigned int sysctl_sched_nr_migrate;
1800extern unsigned int sysctl_timer_migration;
1799 1801
1800int sched_nr_latency_handler(struct ctl_table *table, int write, 1802int sched_nr_latency_handler(struct ctl_table *table, int write,
1801 struct file *file, void __user *buffer, size_t *length, 1803 struct file *file, void __user *buffer, size_t *length,
1802 loff_t *ppos); 1804 loff_t *ppos);
1803#endif 1805#endif
1806#ifdef CONFIG_SCHED_DEBUG
1807static inline unsigned int get_sysctl_timer_migration(void)
1808{
1809 return sysctl_timer_migration;
1810}
1811#else
1812static inline unsigned int get_sysctl_timer_migration(void)
1813{
1814 return 1;
1815}
1816#endif
1804extern unsigned int sysctl_sched_rt_period; 1817extern unsigned int sysctl_sched_rt_period;
1805extern int sysctl_sched_rt_runtime; 1818extern int sysctl_sched_rt_runtime;
1806 1819
diff --git a/include/linux/timer.h b/include/linux/timer.h
index 6cdb6f3331f..ccf882eed8f 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -163,7 +163,10 @@ extern void add_timer_on(struct timer_list *timer, int cpu);
163extern int del_timer(struct timer_list * timer); 163extern int del_timer(struct timer_list * timer);
164extern int mod_timer(struct timer_list *timer, unsigned long expires); 164extern int mod_timer(struct timer_list *timer, unsigned long expires);
165extern int mod_timer_pending(struct timer_list *timer, unsigned long expires); 165extern int mod_timer_pending(struct timer_list *timer, unsigned long expires);
166extern int mod_timer_pinned(struct timer_list *timer, unsigned long expires);
166 167
168#define TIMER_NOT_PINNED 0
169#define TIMER_PINNED 1
167/* 170/*
168 * The jiffies value which is added to now, when there is no timer 171 * The jiffies value which is added to now, when there is no timer
169 * in the timer wheel: 172 * in the timer wheel: