Re: [PATCH 1/5] try parent numa_node at first before using default

From: Stefan Richter
Date: Thu Jul 12 2007 - 01:48:37 EST


Yinghai Lu wrote:
> Stefan Richter wrote:
>> Yinghai Lu wrote:
>>> original default is -1, and this patch just try to use parent's node as
>>> default.
>>
>> But in many cases, the patch does so at a time when the parent is not
>> yet known.
> then it will use -1.

Yes.

The patch does nothing for all subsystems which do

device_initialize(&dev);
dev->parent = pd;
device_add(&dev);

Let's avoid to add infrastructure which does nothing, or only does
something by accident.

The alternatives are:

- Change all subsystems to set dev->parent before device_initialize().
*Document* that the device_initialize() API has this requirement.
This is counter-intuitive, amounts to some work across the kernel,
and could be gotten wrong again in future code because it's a
counter-intuitive API.

- Move your code from device_initialize() to device_add(). One minor
drawback is that node-specific allocations based on the device's
numa_node would not be optimized before device_add(), but there is
probably no need for this. Driver probes come after device_add().

- Let subsystems explicitly call set_dev_node() on their own.

Also keep in mind that either device_move() should update the numa_node,
or the subsystems which call device_move() should explicitly update it
on their own. (Unless they know that their devices will always stay at
the same NUMA node even when switching parents.)
--
Stefan Richter
-=====-=-=== -=== -==--
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/