Re: cpu-2.5.64-1

William Lee Irwin III
2003-03-16T08:25:41Z

On Mon, 10 Mar 2003 20:24:57 -0800, William Lee Irwin III wrote:
>> Enable NUMA-Q's to run with more than 32 cpus by introducing a bitmap
>> ADT and using it for cpu bitmasks on i386. Only good for up to 60 cpus;
>> 64x requires support for node-local cluster ID to physical node routes.
>> diff -urpN linux-2.5.64/arch/i386/kernel/cpu/proc.c cpu-2.5.64-1/arch/i386/kernel/cpu/proc.c
>> - if (!(cpu_online_map & (1<<n)))
>> + if (!cpu_isset(n, cpu_online_map))

On Sun, Mar 16, 2003 at 06:39:30PM +1100, Keith Owens wrote:
> if (!cpu_online(n))
> Any main line code that explicitly refers to cpu_online_map is an
> ongoing maintenance problem. Nothing should refer to cpu_online_map
> except the encapsulating macros such as cpu_online().

That was a bit too braindead of a translation, yes. But it is x86 arch
code so it shouldn't be that large of an issue for big MIPS boxen etc.
I'll search & replace for stuff of this kind and wipe it out anyway.

This suggests a "cpumask strategy". Care to share more, like your take
on such things as
p = req->task;
cpu_dest = __ffs(p->cpus_allowed & cpu_online_map);
rq_dest = cpu_rq(cpu_dest);
in kernel/sched.c?

-- wli