acpi_bus_trim does not detach devices in post order

From: Yasuaki Ishimatsu
Date: Mon Aug 05 2013 - 23:08:39 EST



I acked the following commit but I hit a problem by the commit.
So I report it.

commit cecdb193c8d91a42d9489d00618cc3dfff92e55a
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Jan 15 13:24:02 2013 +0100

ACPI / scan: Change the implementation of acpi_bus_trim()

Before applying the commit, acpi_bus_trim() detachs devices in post order.

When I hot add memory devices and processor devices by container device
in my x86 box, memory devices are added first and processor devices are added
second. So I expect that processor devices are removed first and memory
devices are removed second when I remove them. And before applying the
commit, acpi_bus_trim() did so.

But after appling the commit, acpi_bus_trim() does not detach devices in
post order. So when I remove them, memory devices are removed first and
processor devices are removed second.

By this, I hit a problem.

In Linux on x86 arch, NUMA node is depend on memory devices. So new NUMA
node is created at memory hot adding. Thus when I hot add memory devices and
processor devices, we must hot add memory device first. Otherwise, processor
devices are not set to correct NUMA node number.

And Linux expects that when removing them, processor devices are removed
first before removing memory devices. But acpi_bus_trim() does not do so.
By this, NUMA node is not cleared in my x86 box when hot removing memory device
and processor devices. When removing memory devices, NUMA node is cleared.
But if there are processor devices related with the NUMA node, NUMA node is
not be cleared at memory hot removing.

So when I remove them, NUMA node's sysfs file remained as follows:

# ls /sys/devices/system/node/node1/
compact cpumap meminfo power subsystem vmstat
cpulist distance numastat scan_unevictable_pages uevent

CPU and memory sysfs files are removed correctly. But node1 sysfs file
remained.

Thanks,
Yasuaki Ishimatsu






--
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/