On 10:41 Thu 09 Jun , tjytimi wrote: > The worst case is that the new memory range overlaps all existing > regions,which need type->cnt + 1 free area of struct memblock_region. > So if type->cnt + 1 + type->cnt is less than type->max,we can insert > regions directly.And becase of merge operation in the end of function, > tpye->cnt increase slowly for many cases.So this patch can avoid > unnecessary repeat for many cases when add new memory range. > > Signed-off-by: tjytimi <tjytimi@xxxxxxx> Can you fix the author/signed-off tag with your real legal name? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v4.18#n460 > --- > mm/memblock.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/memblock.c b/mm/memblock.c > index e4f03a6e8..243cd7de5 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -602,6 +602,9 @@ static int __init_memblock memblock_add_range(struct memblock_type *type, > base = obase; > nr_new = 0; > > + if (type->cnt<<1 < type->max - 1) > + insert = true; > + > for_each_memblock_type(idx, type, rgn) { > phys_addr_t rbase = rgn->base; > phys_addr_t rend = rbase + rgn->size; > -- > 2.32.0 > -- Yixun Lan (dlan) Gentoo Linux Developer GPG Key ID AABEFD55