Indeed!
>>My patch does not take advantage of the DECLARE_PER_CPU macros, etc.
>
> A minor optimization which can be done later. The important bit is
> not creating entries for cpus where !cpu_possible(cpu).
Very true. I only instantiate entries for cpus that are online at the
time of the initcall. With the cpu callback stuff that you had in your
patch, we can easily instantiate cpus that (magically? ;) come on line
at a later point.
>> <snip>
>>
>>What do you think of my patch (other than the obvious that it conflicts
>>with yours)?
>
> If I'm reading correctly, you move the cpus under "node" dirs when
> it's a NUMA system. I can see the cute appeal, but it makes it harder
> to answer "how many cpus do I have?": a program would need to do a
> "find" which is kinda icky (also hard to write HOWTOs). So I'd prefer
> symlinks to the node, and no hierarchy.
Well, in either (NUMA/non-NUMA) case, there are symlinks to the CPUs
under class/cpu/devices:
[root@elm3b79 devices]# ls -al class/cpu/devices/
total 0
drwxr-xr-x 2 root root 0 Oct 25 07:59 .
drwxr-xr-x 4 root root 0 Oct 25 07:59 ..
lrwxrwxrwx 1 root root 22 Oct 25 07:59 0 ->
../../../root/sys/cpu0
lrwxrwxrwx 1 root root 22 Oct 25 07:59 1 ->
../../../root/sys/cpu1
lrwxrwxrwx 1 root root 22 Oct 25 07:59 2 ->
../../../root/sys/cpu2
lrwxrwxrwx 1 root root 22 Oct 25 07:59 3 ->
../../../root/sys/cpu3
lrwxrwxrwx 1 root root 22 Oct 25 07:59 4 ->
../../../root/sys/cpu4
lrwxrwxrwx 1 root root 22 Oct 25 07:59 5 ->
../../../root/sys/cpu5
lrwxrwxrwx 1 root root 22 Oct 25 07:59 6 ->
../../../root/sys/cpu6
lrwxrwxrwx 1 root root 22 Oct 25 07:59 7 ->
../../../root/sys/cpu7
These actually work really well because they don't move.. I like the
idea (maybe it is just cute) of exposing the topology in a hierarchical
(directory) fashion when possible. And class/cpu/devices seems like a
fairly logical place to go inquiring about cpus...
> driver/base/cpu.c should probably be moved into kernel/cpu.c anyway.
What about driver/base/node.c & memblk.c? My thoughts were to maintain
a separation between driverfs-only and other in-core code.
> I think exposing the struct cpu array is a good idea, so archs can add
> properties if they want (ie. node information).
Cool. I didn't think it was particularly important at first, but Pat
showed me the error of my ways ;)
> But Patrick is the architect, I'm just a grunt, so it's his call 8)
> Rusty.
Good call! What do you think, O architect? ;)
Cheers!
-Matt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/