[PATCH v3] kexec: Enable CMA based contiguous allocation

Alexander Graf graf at amazon.com
Wed May 21 08:30:32 PDT 2025


On 21.05.25 12:30, Baoquan He wrote:
>
> On 05/21/25 at 03:47pm, Zhongkun He wrote:
>> On Wed, May 14, 2025 at 2:40 AM Alexander Graf <graf at amazon.com> wrote:
> ......
>>>   /**
>>>    * kexec_locate_mem_hole - find free memory for the purgatory or the next kernel
>>>    * @kbuf:      Parameters for the memory search.
>>> @@ -648,6 +684,13 @@ int kexec_locate_mem_hole(struct kexec_buf *kbuf)
>>>          if (kbuf->mem != KEXEC_BUF_MEM_UNKNOWN)
>>>                  return 0;
>>>
>>> +       /*
>>> +        * Try to find a free physically contiguous block of memory first. With that, we
>>> +        * can avoid any copying at kexec time.
>>> +        */
>>> +       if (!kexec_alloc_contig(kbuf))
>>> +               return 0;
>> IIUC, The kexec_locate_mem_hole() function is also used in
>> the KEXEC_TYPE_CRASH kimage, but kexec_alloc_contig() does not skip it.
>> This can cause kdump to fail and lead to CMA memory leakage.
> That is true and good catch, and fix is needed to skip cma alloc for
> kdump.


Thanks for catching this! I added a check to ensure we don't use the CMA 
logic with crash kernels in v4 and posted it.


Alex





Amazon Web Services Development Center Germany GmbH
Tamara-Danz-Str. 13
10243 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597


More information about the kexec mailing list