Make io_schedule private
PATCH 10/28 Make io_schedule private
Make io_schedule private
Make io_schedule and friends private to each scheduler as well.
Signed-off-by Con Kolivas <[email protected]>
include/linux/sched.h +3 -3
@@ -165,9 +165,6 @@ extern void show_regs(struct pt_regs *);*/ extern void show_stack (struct task_struct *task,unsigned long *sp); -void io_schedule (void ); -long io_schedule_timeout (long timeout); -extern void cpu_init (void );extern void trap_init (void );extern void update_process_times (int user);
@@ -179,6 +176,9 @@ extern unsigned long cache_decay_ticks;/* Is this address in the __sched functions? */ extern int in_sched_functions (unsigned long addr); +void __sched io_schedule(void); +long __sched io_schedule_timeout (long timeout); +#define MAX_SCHEDULE_TIMEOUT LONG_MAXextern signed long FASTCALL (schedule_timeout (signed long timeout)); asmlinkage void schedule(void);
include/linux/scheduler.h +2 -0
@@ -1,5 +1,7 @@struct sched_drv { +void (*io_schedule)(void ); +long (*io_schedule_timeout)(long );void (*sched_idle_next)(void );void (*set_oom_timeslice)(task_t *);unsigned long (*nr_running)(void );
kernel/sched.c +4 -4
@@ -3169,7 +3169,7 @@ static long ingo_sys_sched_yield(void)* But don't do that if it is a deliberate, throttling IO wait (this task * has set its backing_dev_info: the queue against which it should throttle) */ -void __sched io_schedule(void) +static void __sched ingo_io_schedule(void) {struct runqueue *rq = &per_cpu (runqueues,_smp_processor_id ());
@@ -3178,9 +3178,7 @@ void __sched io_schedule(void)atomic_dec (&rq->nr_iowait); } -EXPORT_SYMBOL (io_schedule); - -long __sched io_schedule_timeout (long timeout) +static long __sched ingo_io_schedule_timeout (long timeout) {struct runqueue *rq = &per_cpu (runqueues,_smp_processor_id ());long ret;
@@ -4384,6 +4382,8 @@ void destroy_sched_domain_sysctl()#endif struct sched_drv ingo_sched_drv = { + .io_schedule = ingo_io_schedule, + .io_schedule_timeout = ingo_io_schedule_timeout, .set_oom_timeslice = ingo_set_oom_timeslice, .nr_running = ingo_nr_running, .nr_uninterruptible = ingo_nr_uninterruptible,
kernel/scheduler.c +11 -0
@@ -643,6 +643,17 @@ void sched_idle_next(void) scheduler->sched_idle_next (); } +void __sched io_schedule(void) +{ + scheduler->io_schedule (); +} +EXPORT_SYMBOL (io_schedule); + +long __sched io_schedule_timeout (long timeout) +{ +return scheduler->io_schedule_timeout (timeout); +} +unsigned long nr_running (void ) {return scheduler->nr_running ();