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 Mon Jan 12 10:11:46 2004 +++ 170-large-system-scheduling-hacks.patch/arch/ia64/kernel/time.c Mon Jan 12 10:14:39 2004 @@ -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 Mon Jan 12 10:03:37 2004 +++ 170-large-system-scheduling-hacks.patch/kernel/sched.c Mon Jan 12 10:16:04 2004 @@ -1280,7 +1280,7 @@ int can_migrate_task(task_t *tsk, runque return 0; if (!cpu_isset(this_cpu, tsk->cpus_allowed)) return 0; - if (!idle && (delta <= JIFFIES_TO_NS(cache_decay_ticks))) + if ((delta <= JIFFIES_TO_NS(cache_decay_ticks))) return 0; return 1; } @@ -1379,9 +1379,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) @@ -1402,8 +1402,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,