[PATCH v3 12/12] acpi, numa: reuse acpi_numa_memory_affinity_init()
From: guohanjun@huawei.com (Hanjun Guo)
Date: 2016-01-28 02:49:03
Also in:
linux-acpi, lkml
On 2016/1/27 22:18, Robert Richter wrote:
On 27.01.16 14:15:06, Hanjun Guo wrote:quoted
Hi Robert, On 2016/1/25 18:26, Robert Richter wrote:quoted
On 23.01.16 17:39:27, Hanjun Guo wrote:quoted
From: Hanjun Guo <redacted> After the cleanup for acpi_numa_memory_affinity_init(), it can be used for architetures both x86 and arm64, since CONFIG_MEMORY_HOTPLUG is not enabled for arm64, so no worry about that. Signed-off-by: Hanjun Guo <redacted> --- arch/arm64/kernel/acpi_numa.c | 42 ------------------------------- arch/x86/mm/srat.c | 54 ---------------------------------------- drivers/acpi/numa.c | 57 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 96 deletions(-)This one reverts acpi_numa_memory_affinity_init() to the x86 version. I rather would prefer the arm64 version for the generic code. We could keep the x86 implementation until x86 maintainers agree to remove them and use the generic one (implemented in a separate patch). Doing so we can move acpi_numa_memory_affinity_init() from the beginning to generic code (used for arm64) and have this last patch to remove the x86 version.I think the x86 version is the generic one, all the flags (ACPI_SRAT_MEM_HOT_PLUGGABLE and etc) are defined in the ACPI spec, x86 just use all the flags because it support such features. For ARM64, firmware should be careful and represent the true platform configuration to OS, such as on ARM64, we can't set hotpluggable flag as the ARM64 arch don't support memory hot-plug yet (also the firmware don't support it too), if firmware do things right, it will be not worries for the kernel.But you are removing all arm64 from your first patches. Why do you introduce acpi_numa_memory_affinity_init() in the beginning to remove it in the end again? I esp. like the arm64 version because of its direct returns. So I still would like to see generic code for arm64 from the beginning. Maybe have a copy of x86 initially and make modifications for arm64 to it, or move missing code (hotplug, etc.) from x86 to generic and remove x86 arch code with the last patch.
OK, so that's the logic and ordering of formatting the patch set, it's easy to fix :) I will introduce the generic code for acpi_numa_memory_affinity_init() in drivers/acpi/numa.c and mark it as __weak from the beginning, and move missing code from x86 to generic, then remove x86 one as you suggested, is that OK? Thanks Hanjun