On Mon, 2021-03-22 at 14:40 -0400, Jon Masters wrote: > On 3/22/21 2:34 PM, Jon Masters wrote: > > Hi Nicolas, > > > > On 11/7/19 4:56 AM, Nicolas Saenz Julienne wrote: > > > With the introduction of ZONE_DMA in arm64 we moved the default CMA and > > > crashkernel reservation into that area. This caused a regression on big > > > machines that need big CMA and crashkernel reservations. Note that > > > ZONE_DMA is only 1GB big. > > > > > > Restore the previous behavior as the wide majority of devices are OK > > > with reserving these in ZONE_DMA32. The ones that need them in ZONE_DMA > > > will configure it explicitly. > > > > > > Reported-by: Qian Cai <[email protected]> > > > Signed-off-by: Nicolas Saenz Julienne <[email protected]> > > > --- > > > arch/arm64/mm/init.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > > > index 580d1052ac34..8385d3c0733f 100644 > > > --- a/arch/arm64/mm/init.c > > > +++ b/arch/arm64/mm/init.c > > > @@ -88,7 +88,7 @@ static void __init reserve_crashkernel(void) > > > if (crash_base == 0) { > > > /* Current arm64 boot protocol requires 2MB alignment */ > > > - crash_base = memblock_find_in_range(0, ARCH_LOW_ADDRESS_LIMIT, > > > + crash_base = memblock_find_in_range(0, arm64_dma32_phys_limit, > > > crash_size, SZ_2M); > > > if (crash_base == 0) { > > > pr_warn("cannot allocate crashkernel (size:0x%llx)\n", > > > @@ -454,7 +454,7 @@ void __init arm64_memblock_init(void) > > > high_memory = __va(memblock_end_of_DRAM() - 1) + 1; > > > - dma_contiguous_reserve(arm64_dma_phys_limit ? : > > > arm64_dma32_phys_limit); > > > + dma_contiguous_reserve(arm64_dma32_phys_limit); > > > } > > > void __init bootmem_init(void) > > > > Can we get a bit more of a backstory about what the regression was on > > larger machines? If the 32-bit DMA region is too small, but the machine > > otherwise has plenty of memory, the crashkernel reservation will fail. > > Most e.g. enterprise users aren't going to respond to that situation by > > determining the placement manually, they'll just not have a crashkernel. > > Nevermind, looks like Catalin already changed this logic in Jan 2021 by > removing arm64_dma32_phys_limit and I'm out of date.
Also see this series (already merged): https://lore.kernel.org/linux-arm-kernel/[email protected]/ Regads, Nicolas
signature.asc
Description: This is a digitally signed message part

