diff -Naurp -X /home/jbarnes/dontdiff 160-noirqdebug-default.patch/arch/ia64/kernel/time.c 170-large-system-scheduling-hacks.patch/arch/ia64/kernel/time.c --- 160-noirqdebug-default.patch/arch/ia64/kernel/time.c Tue Dec 30 16:39:06 2003 +++ 170-large-system-scheduling-hacks.patch/arch/ia64/kernel/time.c Tue Dec 30 16:39:50 2003 @@ -47,7 +47,7 @@ sched_clock (void) { unsigned long offset = ia64_get_itc(); - return (offset * local_cpu_data->nsec_per_cyc) >> IA64_NSEC_PER_CYC_SHIFT; + return jiffies * (1000000000 / HZ); } static void diff -Naurp -X /home/jbarnes/dontdiff 160-noirqdebug-default.patch/kernel/sched.c 170-large-system-scheduling-hacks.patch/kernel/sched.c --- 160-noirqdebug-default.patch/kernel/sched.c Tue Dec 30 16:38:57 2003 +++ 170-large-system-scheduling-hacks.patch/kernel/sched.c Tue Dec 30 16:39:50 2003 @@ -1158,7 +1158,7 @@ can_migrate_task(task_t *tsk, runqueue_t { unsigned long delta = sched_clock() - tsk->timestamp; - if (!idle && (delta <= JIFFIES_TO_NS(cache_decay_ticks))) + if (delta <= JIFFIES_TO_NS(cache_decay_ticks)) return 0; if (task_running(rq, tsk)) return 0; @@ -1265,9 +1265,9 @@ out: * On NUMA, do a node-rebalance every 400 msecs. */ #define IDLE_REBALANCE_TICK (HZ/1000 ?: 1) -#define BUSY_REBALANCE_TICK (HZ/5 ?: 1) -#define IDLE_NODE_REBALANCE_TICK (IDLE_REBALANCE_TICK * 5) -#define BUSY_NODE_REBALANCE_TICK (BUSY_REBALANCE_TICK * 2) +#define BUSY_REBALANCE_TICK (HZ/10 ?: 1) +#define IDLE_NODE_REBALANCE_TICK (IDLE_REBALANCE_TICK * 100) +#define BUSY_NODE_REBALANCE_TICK (BUSY_REBALANCE_TICK * 50) #ifdef CONFIG_NUMA static void balance_node(runqueue_t *this_rq, int idle, int this_cpu) @@ -1288,8 +1288,10 @@ static void rebalance_tick(runqueue_t *t { #ifdef CONFIG_NUMA int this_cpu = smp_processor_id(); -#endif + unsigned long j = jiffies + this_cpu; +#else unsigned long j = jiffies; +#endif /* * First do inter-node rebalancing, then intra-node rebalancing,