# git rev-parse -q --verify 9ef34630a4614ee1cd478f9859ebea55d55f10ec^{commit} 9ef34630a4614ee1cd478f9859ebea55d55f10ec already have revision, skipping fetch # git checkout -q -f -B kisskb 9ef34630a4614ee1cd478f9859ebea55d55f10ec # git clean -qxdf # < git log -1 # commit 9ef34630a4614ee1cd478f9859ebea55d55f10ec # Author: Oliver O'Halloran # Date: Fri Dec 7 02:17:14 2018 +1100 # # powerpc/mm: Fallback to RAM if the altmap is unusable # # The "altmap" is used to provide a pool of memory that is reserved for # the vmemmap backing of hot-plugged memory. This is useful when adding # large amount of ZONE_DEVICE memory to a system with a limited amount of # normal memory. # # On ppc64 we use huge pages to map the vmemmap which requires the backing # storage to be contigious and aligned to the hugepage size. The altmap # implementation allows for the altmap provider to reserve a few PFNs at # the start of the range for it's own uses and when this occurs the # first chunk of the altmap is not usable for hugepage mappings. On hash # there is no sane way to fall back to a normal sized page mapping so we # fail the allocation. This results in memory hotplug failing with # ENOMEM when the new range doesn't fall into an existing vmemmap block. # # This patch handles this case by falling back to using system memory # rather than failing if we cannot allocate from the altmap. This # fallback should only ever be used for the first vmemmap block so it # should not cause excess memory consumption. # # Fixes: 7b73d978a5d0 ("mm: pass the vmem_altmap to vmemmap_populate") # Signed-off-by: Oliver O'Halloran # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 9ef34630a4614ee1cd478f9859ebea55d55f10ec # < make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- 44x/iss476-smp_defconfig WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] # make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- INFO: Uncompressed kernel (size 0x5e742c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x600000) INFO: Uncompressed kernel (size 0x5e742c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x600000) Completed OK # rm -rf /kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 # Build took: 0:00:55.800870