From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E890BC4345F for ; Sun, 28 Apr 2024 06:45:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 811186B0092; Sun, 28 Apr 2024 02:45:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BE9F6B0093; Sun, 28 Apr 2024 02:45:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6D6446B0095; Sun, 28 Apr 2024 02:45:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 509F06B0092 for ; Sun, 28 Apr 2024 02:45:54 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 10CF7140DB0 for ; Sun, 28 Apr 2024 06:45:54 +0000 (UTC) X-FDA: 82058005428.21.2B7B0DB Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf04.hostedemail.com (Postfix) with ESMTP id 6804B40005 for ; Sun, 28 Apr 2024 06:45:52 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NZ6LHY47; spf=pass (imf04.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714286752; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KSf442hHmZUU4RTv7OTDCW/ztlQDXEHSIJ3MLcuGex8=; b=8ou3aQ9duFGkXVUiS5C99fKZMdvOlBG3l4s2xz+rkhfAfaSZk+B2swEDCbdxpyWEffbUOd WlW2trqz05Wz3+arcxOw2CgzCqricmytvNTuvzdDuKQK3DukYt55DRuRnozb0MBV8G3ECN dduFkIMWG6a9eugNmsW+HcgcSWx/+fs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714286752; a=rsa-sha256; cv=none; b=2//bhAqtvtXVO9/CY7VHK6YIHgk0qiZq4H6EqBfgexuXS7iKt768EZUCDhwnQ/HaFKzbYz AOYvG0+WzOdjv9s6uHKzRBo6naXNDuBS/1ketKpxM0sq391pqJ6pJ+e1t+ZS7A5HnfuG2X 4g7UPWP9x/5KDqP9O7SeGnR2/hlovnQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NZ6LHY47; spf=pass (imf04.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id AD9BC6066F; Sun, 28 Apr 2024 06:45:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FF8AC113CC; Sun, 28 Apr 2024 06:45:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714286751; bh=u1UwqREmZ5JpogTLwWviUMOQKLDcYqMgUlJ/DZWTh3Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=NZ6LHY47S3LRGQiAr7tV4dJxrG2Ya9bkqFwzCeXNiyJvYhi89njpn4l1RWOlM7jB+ GILpMe284kBSHraQU6nAKtxAO5SygWbRFDPtj805K/CPeKatl5ovS8ZaZ4Ojnl5IUX JmymHqOQtPP0jWBRcJ3lGOSADw9yEFB6a1MgAbozxx1XSUkgBpeb0O0wxd1mtHUMYL sbrxGhuqj4+SgtQ0Wl1DLgJ0ydw1Ktmxz3Ec77xMPp8Ouvik7z70poQMYHGvxIF2BI vZ48KVzWFGI4mGmYuqn1p1tvnAJyvkrncukTN7NKimbTcDjDdpR6qBLVOL//BqYIQX cYS6kfuPFi84g== Date: Sun, 28 Apr 2024 09:44:30 +0300 From: Mike Rapoport To: Wei Yang Cc: akpm@linux-foundation.org, linux-mm@kvack.org Subject: Re: [Patch v2 4/8] mm/memblock: remove consecutive regions at once Message-ID: References: <20240425071929.18004-1-richard.weiyang@gmail.com> <20240425071929.18004-5-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240425071929.18004-5-richard.weiyang@gmail.com> X-Rspam-User: X-Stat-Signature: 9e1y1hdrj69o31tfhybf31i7us4o7g5n X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 6804B40005 X-HE-Tag: 1714286752-429287 X-HE-Meta: U2FsdGVkX19IU9rSSPIalxcHLE4Xjq/F/A+eieSkLtGJU/dCuAxjXKITefKq/9PsR+L5ogmf3BTWOI6K0DhAx22mdF52DPjnzbwBbmQlf1j26p4YvCxU2q/k7dTdUGVbw7ZCARVUbeQGnRXOhpDeWq8Bxsnc3+XDhIwyhHqY75bZGO5Q5Nd0iO88rDSrz+kZwtKC+kJfqiNvzFWbE+S/aa3YC/h6VjYh6XlX7zIn8ZFJZb5Del//EGZQc3/i1HobLcFhSmCJx8VmRqlbF3Ehqe7DfZ3NNmZDKEogPdMpiMaOWYZkK6Ez7VASfETefOpTMyQYpyNkw7D8RmDAMmVwc5SN9yr2G1sFL9P0czvma077SCtGTPRld6+oAy/d39ONE5TRAkHvnj/74EP4oDoKBBpVrtM+yuoIXe59f+6DZBV6+G7ZUywkTY2hepsfkPuFTWdFdqn28cGdD1P4fbnB6Pr23d7AOC42PmxPBr0xY/oA0XlqIBq/VYBpZQ1aLTaFcldJC772hsj8RavR7oFzyxxIY1XGsUECrpmYzcK8Cw4mwtgshUK1HrHIV4VmSnL5bHjOjaREM228oyYZX49AL8wbWYl1iaUtxu2Pqs06ECPoAm3W8qsbMYO9knweHX0p3UbQTOGlI/GNPogxQVwZazquHM96NKlcFKw0QDzWzoWK2H5j1mc8ywvwMjXVBvdTG5sRgmz5aW5V06WIZGKSqwa4cwsabGsszH86Qu21SHhBoOeWnddC2eTHMuI0G6oXobE/JfA2qbJ0WTxzbNLy3EXIozwRVF6iN479v+On6C1+Bk6z33yNd8BDoZrKSYoLRtpLu2WkZkBacgyNCi7rbaL99Bc0vy2r17PVpwEUL8DlgNz9n50TFA350oZGfqjUa9D5auvG8Uh7omc0srsUN66xfyiHArsN/1FnRagKV4Cqdx/NZw1SM8RSs2iQjknVkEmPtJzGhjPiezZxh2N 7HLX8hMZ SX04zsP/UWn83Y4HLCiCFD7Q7vGfhVvwxBRUrrtK0MMVMSpmBT0cG69LAo3sa8eIB2JDQurKXFzOz7nVTZ/tRZSNhVQ+jrkjhh9SOs1rfxKqlzKf6dwAC6o+42lNeeJEFtVCyGmB4aUs4o7dopdcHcqZ0YgfPVhaMmPS5BurA0JgDHWCyGmu9Whv6yV4f40AHTq/oxYR/I7XZf9Esh8uPIEPvdo9yQ9xfNS5/fHLHQsrEbtvH7yp3mVEMsg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Apr 25, 2024 at 07:19:25AM +0000, Wei Yang wrote: > In memblock_remove_range, we would remove consecutive regions after > isolation. > > Instead of removing each region from end to start one by one, we could > remove those consecutive regions at once. I don't think this is worth the churn. > Signed-off-by: Wei Yang > --- > mm/memblock.c | 24 ++++++++++++++++-------- > 1 file changed, 16 insertions(+), 8 deletions(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 5a363ef283d0..53e3aa2cd9a2 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -343,12 +343,15 @@ static phys_addr_t __init_memblock memblock_find_in_range(phys_addr_t start, > return ret; > } > > -static void __init_memblock memblock_remove_region(struct memblock_type *type, unsigned long r) > +static void __init_memblock memblock_remove_regions(struct memblock_type *type, > + unsigned long r, > + unsigned int num) > { > - type->total_size -= type->regions[r].size; > - memmove(&type->regions[r], &type->regions[r + 1], > - (type->cnt - (r + 1)) * sizeof(type->regions[r])); > - type->cnt--; > + for (int i = 0; i < num; i++) > + type->total_size -= type->regions[r + i].size; > + memmove(&type->regions[r], &type->regions[r + num], > + (type->cnt - (r + num)) * sizeof(type->regions[r])); > + type->cnt -= num; > > /* Special case for empty arrays */ > if (type->cnt == 0) { > @@ -360,6 +363,11 @@ static void __init_memblock memblock_remove_region(struct memblock_type *type, u > } > } > > +static void __init_memblock memblock_remove_region(struct memblock_type *type, unsigned long r) > +{ > + memblock_remove_regions(type, r, 1); > +} > + > #ifndef CONFIG_ARCH_KEEP_MEMBLOCK > /** > * memblock_discard - discard memory and reserved arrays if they were allocated > @@ -846,14 +854,14 @@ static int __init_memblock memblock_remove_range(struct memblock_type *type, > phys_addr_t base, phys_addr_t size) > { > int start_rgn, end_rgn; > - int i, ret; > + int ret; > > ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn); > if (ret) > return ret; > > - for (i = end_rgn - 1; i >= start_rgn; i--) > - memblock_remove_region(type, i); > + if (end_rgn - start_rgn) > + memblock_remove_regions(type, start_rgn, end_rgn - start_rgn); > return 0; > } > > -- > 2.34.1 > -- Sincerely yours, Mike.