Message ID | 20230913163823.7880-5-james.morse@arm.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | ACPI/arm64: add support for virtual cpuhotplug | expand |
On Wed, Sep 13, 2023 at 04:37:52PM +0000, James Morse wrote: > NUMA systems require the node descriptions to be ready before CPUs are > registered. This is so that the node symlinks can be created in sysfs. > > Currently no NUMA platform uses GENERIC_CPU_DEVICES, meaning that CPUs > are registered by arch code, instead of cpu_dev_init(). > > Move cpu_dev_init() after node_dev_init() so that NUMA architectures > can use GENERIC_CPU_DEVICES. > > Signed-off-by: James Morse <james.morse@arm.com> I think this patch should be merged sooner rather than later so that it gets a longer time to be tested, as moving the order that things happen in init/main.c can be problematical. Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Thanks!
On Wed, 13 Sep 2023 16:37:52 +0000 James Morse <james.morse@arm.com> wrote: > NUMA systems require the node descriptions to be ready before CPUs are > registered. This is so that the node symlinks can be created in sysfs. > > Currently no NUMA platform uses GENERIC_CPU_DEVICES, meaning that CPUs > are registered by arch code, instead of cpu_dev_init(). Worth saying why this matters I think. I wrote a nice note on that being a possible problem path as node_dev_init() uses the results of cpu_dev_init() if CONFIG_GENERIC_CPU_DEVICES before seeing this comment and realizing you had it covered (sort of anyway). > > Move cpu_dev_init() after node_dev_init() so that NUMA architectures > can use GENERIC_CPU_DEVICES. > > Signed-off-by: James Morse <james.morse@arm.com> > --- > drivers/base/init.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/base/init.c b/drivers/base/init.c > index 397eb9880cec..c4954835128c 100644 > --- a/drivers/base/init.c > +++ b/drivers/base/init.c > @@ -35,8 +35,8 @@ void __init driver_init(void) > of_core_init(); > platform_bus_init(); > auxiliary_bus_init(); > - cpu_dev_init(); > memory_dev_init(); > node_dev_init(); > + cpu_dev_init(); > container_dev_init(); > }
diff --git a/drivers/base/init.c b/drivers/base/init.c index 397eb9880cec..c4954835128c 100644 --- a/drivers/base/init.c +++ b/drivers/base/init.c @@ -35,8 +35,8 @@ void __init driver_init(void) of_core_init(); platform_bus_init(); auxiliary_bus_init(); - cpu_dev_init(); memory_dev_init(); node_dev_init(); + cpu_dev_init(); container_dev_init(); }
NUMA systems require the node descriptions to be ready before CPUs are registered. This is so that the node symlinks can be created in sysfs. Currently no NUMA platform uses GENERIC_CPU_DEVICES, meaning that CPUs are registered by arch code, instead of cpu_dev_init(). Move cpu_dev_init() after node_dev_init() so that NUMA architectures can use GENERIC_CPU_DEVICES. Signed-off-by: James Morse <james.morse@arm.com> --- drivers/base/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)