Index: kernel/fork.c =================================================================== RCS file: /home/jejb/CVSROOT/linux/2.5/kernel/fork.c,v retrieving revision 1.1.1.5 diff -u -r1.1.1.5 fork.c --- kernel/fork.c 16 Jan 2002 17:25:33 -0000 1.1.1.5 +++ kernel/fork.c 17 Jan 2002 02:18:29 -0000 @@ -650,7 +650,8 @@ /* ?? should we just memset this ?? */ for(i = 0; i < smp_num_cpus; i++) - p->per_cpu_utime[i] = p->per_cpu_stime[i] = 0; + p->per_cpu_utime[cpu_logical_map(i)] = + p->per_cpu_stime[cpu_logical_map(i)] = 0; spin_lock_init(&p->sigmask_lock); } #endif Index: kernel/sched.c =================================================================== RCS file: /home/jejb/CVSROOT/linux/2.5/kernel/sched.c,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 sched.c --- kernel/sched.c 16 Jan 2002 17:25:33 -0000 1.1.1.4 +++ kernel/sched.c 17 Jan 2002 02:18:29 -0000 @@ -267,7 +267,7 @@ unsigned long i, sum = 0; for (i = 0; i < smp_num_cpus; i++) - sum += cpu_rq(i)->nr_running; + sum += cpu_rq(cpu_logical_map(i))->nr_running; return sum; } @@ -277,7 +277,7 @@ unsigned long i, sum = 0; for (i = 0; i < smp_num_cpus; i++) - sum += cpu_rq(i)->nr_switches; + sum += cpu_rq(cpu_logical_map(i))->nr_switches; return sum; } @@ -287,7 +287,7 @@ unsigned long i, curr, max = 0; for (i = 0; i < smp_num_cpus; i++) { - curr = cpu_rq(i)->nr_running; + curr = cpu_rq(cpu_logical_map(i))->nr_running; if (curr > max) max = curr; } @@ -327,7 +327,7 @@ busiest = NULL; max_load = 0; for (i = 0; i < smp_num_cpus; i++) { - rq_tmp = cpu_rq(i); + rq_tmp = cpu_rq(cpu_logical_map(i)); load = rq_tmp->nr_running; if ((load > max_load) && (load < prev_max_load) && (rq_tmp != this_rq)) {