powerpc/pseries/memory-hotplug: Only update DT once per memory DLPAR request
authorNathan Fontenot <nfont@linux.vnet.ibm.com>
Fri, 20 Apr 2018 20:29:48 +0000 (15:29 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:46:58 +0000 (18:46 +0100)
commit9271304c26fc7918e4e78ff499c7405124c76b9f
tree9bd19bd3d8c6ba11f3e7d2ab4094dd2f9fc58e65
parent0ab2545aa4041357d7300b7ebc402313671c7a1c
powerpc/pseries/memory-hotplug: Only update DT once per memory DLPAR request

[ Upstream commit 063b8b1251fd069f3740339fca56119d218f11ba ]

The updates to powerpc numa and memory hotplug code now use the
in-kernel LMB array instead of the device tree. This change allows the
pseries memory DLPAR code to only update the device tree once after
successfully handling a DLPAR request.

Prior to the in-kernel LMB array, the numa code looked up the affinity
for memory being added in the device tree, the code now looks this up
in the LMB array. This change means the memory hotplug code can just
update the affinity for an LMB in the LMB array instead of updating
the device tree.

This also provides a savings in kernel memory. When updating the
device tree old properties are never free'ed since there is no
usecount on properties. This behavior leads to a new copy of the
property being allocated every time a LMB is added or removed (i.e. a
request to add 100 LMBs creates 100 new copies of the property). With
this update only a single new property is created when a DLPAR request
completes successfully.

Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/include/asm/drmem.h
arch/powerpc/platforms/pseries/hotplug-memory.c