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 3320CCD128A for ; Mon, 8 Apr 2024 12:37:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8574F6B0087; Mon, 8 Apr 2024 08:37:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 807CF6B0089; Mon, 8 Apr 2024 08:37:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6CEFA6B008A; Mon, 8 Apr 2024 08:37:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4CA1A6B0087 for ; Mon, 8 Apr 2024 08:37:27 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DA6E8A084C for ; Mon, 8 Apr 2024 12:37:26 +0000 (UTC) X-FDA: 81986315292.19.19A774E Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf11.hostedemail.com (Postfix) with ESMTP id C038F40009 for ; Mon, 8 Apr 2024 12:37:24 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="m2cto/ux"; spf=pass (imf11.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712579844; h=from:from:sender:reply-to: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=FPRtz+TI51fjH1Wpsoe9p44S23rC486FQBPAycRFcgc=; b=Yto+/53Ws/8OSzXtmnmsS3b3xJEmZyumb/14IoX1aXXniIc7sFSd+qhDXfmesFZI44JKoN Rdox1xQGlc/fdtYxjAMvLXpXGsrL+O2CAPTSF3FmdjxbZbAK/zy2J5G4yajM3bS2M4um4T P6HoqZuIDw3SO9/ly+a9dvt2jlw0d40= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712579844; a=rsa-sha256; cv=none; b=2Dwk4lvMMI2pLXPP3Y5ixtc8EtZron9rSyveLntnS40Ks+huqMzdJkypQRYqDsdv+QjH+Q hhpm6VuUUWRs3w3e7IJsj2Tn9fOYkQYKb+l/XA0mqziytonWRW64CbRkJiyvj8oS+TwJh7 eXjZS07Yz2bhmCNdqjNQB3kOekDxcn4= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="m2cto/ux"; spf=pass (imf11.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a44f2d894b7so506444366b.1 for ; Mon, 08 Apr 2024 05:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712579843; x=1713184643; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=FPRtz+TI51fjH1Wpsoe9p44S23rC486FQBPAycRFcgc=; b=m2cto/uxk9TU6drs7hcor0qOw+Kb7mg9uriv/Gmuc+YL+ZRz31GO0blJrS5x7F5SCc gj+evKB5gIfAp9tgfYwkhssIYLqNauCZpaEN72uhFn/3Gkl3jB+EE31TgvZntjToLr1q fVoVt7f9gFiJsVfAH3EmptaYtaa5u34FzTJElZ2cYb/pYyChU/Gs7tKXZ3pOVQjU/jK7 qT+A3HHWBZlHiBgrYd2BHkG8q+71k16aagb0wjZ+cvpBTysYYmubw5H+p11pUhr+NzcP ICk86P2VA6Zt+pQn9yX9kqJyRrB/f5PZ5VrjBrzAE2lv+yJioqGRlKsa90dStegc/Kav vAcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712579843; x=1713184643; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=FPRtz+TI51fjH1Wpsoe9p44S23rC486FQBPAycRFcgc=; b=lnfGvF4OGeNiuJiwvJDNCNgvj8wzxuttGfA3wJ8SKLFyRFJXrAhVXQsUa+2BA9i7fo nuc0LpJnezmK362RTrtQEmO141vQrRTG/bcVXAJpyFnN729ryNROJcz5wc3DGHY8PXVn vWId2z/X7gk3ej+PgBC1ZC0Ks9iFOk0B/gB0zBR/q2m/WFxPmosu+aAqg4IGb3ROl4Nv 8+T7XI5niu9E3L/pXnsLpSKw7lzNeQVFCpq5ShkGirEm46FTbS5t64aLhGs8G3S24B1G F8LWJTNZqNdoyVQvBC51YtPt0WMI9JfBOhwui/waBLipN6OSHcmCj/+x/Tv/frlsSlf6 YKsA== X-Forwarded-Encrypted: i=1; AJvYcCWNARaIAbHggPGunaqt6Z+76pj9He0yjSSSWhnNZRhQSgIgScA8t2B6lXXU3L9t0VU3eIPn7DdGcmQR4gYWaDiGiqg= X-Gm-Message-State: AOJu0Ywq/9cXEMEE5tFspon8LN7lTM+ijCeZfuIh+x6mqX3YzfyPdqjB Nl8O3A/DQcTkV5NpGmzddJDa3jtIPaNWDrQzWq9OnBnxRGWNjUzZ X-Google-Smtp-Source: AGHT+IGbmRHOI2etSfWmC4xzSpsM3PrZkCde3Eq2zi0+UXQ58qee/IHAHCWbTzGnR+Attj5V5XGMsg== X-Received: by 2002:a17:907:9496:b0:a51:bc68:fa94 with SMTP id dm22-20020a170907949600b00a51bc68fa94mr5205987ejc.21.1712579842823; Mon, 08 Apr 2024 05:37:22 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id jx26-20020a170907761a00b00a474c3c2f9dsm4386470ejc.38.2024.04.08.05.37.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 08 Apr 2024 05:37:22 -0700 (PDT) Date: Mon, 8 Apr 2024 12:37:21 +0000 From: Wei Yang To: Mike Rapoport Cc: Wei Yang , akpm@linux-foundation.org, linux-mm@kvack.org, Paul Mackerras , Tejun Heo Subject: Re: [Patch v3] mm/memblock: remove empty dummy entry Message-ID: <20240408123721.k224aimkcvob3ddi@master> Reply-To: Wei Yang References: <20240405015821.13411-1-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Rspamd-Queue-Id: C038F40009 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 78ftuyddd731bea8bouubtih4r4qm7ok X-HE-Tag: 1712579844-761017 X-HE-Meta: U2FsdGVkX1/+pfg7gFesPkRImlp9PYjzwupAMCTo2u60NYzdwbhFsgT1h97Nf0qJV0EEAj++r3rmgnJOGPHGe13XfWwokzSOA1dMLJNBb9xWV3HqvmOmwsubVRbimLNWYbGtWrafF40hOkq53zHNLjfOiRVMIOBtXJoVXTkdQIGtsyZv6/s6E9Axshn/oBt3qn9r7UhT/rzsLPN538egvAvJoKhgvs9oSVOeLkq67PkJKRkpuxmuM+u9CJIGtF/dNKuNDBV+xc4eWt+QeluOWeDjK1KbtJ3qMZssQ6oXpVYkUlY1zsAzR5XB7gG9fkzbhnzv6C1DMUTC2jh7NDJhsaTlrnv3TTJB9P5//j2lz3BqLJ1teLupU3J0EEz+qLto2uGfp7HW4TfF2/j5J1+z1BnkBZhLinW21UBnCDcPoiK/5+GbZyS8eRZpu2Oy7kl9gSe69wDdijjrKKfKXW7dE647731fYHFXf2/GVg5Hg44oKEfSlAAtkgAvLSf2jjEFlR92V1ImyyHbNaT5YWp60VoyGPWrwyZspv4WPPIWB08qS1RXhQQFIhtiw4EreG8mq3lLW57eAJDd7T70YOWxOsC0KIXsubwsj40ifcM07uJZtLR61BiNGuOMBGtytjiPcMjX8FplJD0AUV5oV4B3vtNpwxg0ADX8s8bdie+JQpxikEDsY3Z5C/eWl8jXPmKy/nU0H9Xeqe1NyEicc2tKX4WWUMXIA7Af1J8DcIGrrUVd4rJuQiH0BI8OqWMoqb0M2Vld0yrOQtx0amS8tU2yWMXKbll0xtrTENAf6R3Cu/zsbwdg/+xi5dVW4PyARMqxXJlZdPJCjxzg1dWm1EXzYw84we38Lil9aOkTV2yFJLniL8niFuW3zvgK/fL1RYqVYdEFDHS/7XraE0YqVWPIZbzlaRFPaUNNgiwD1NA/iLz2My50bMB2l75lxoCB7zRdq9Yf48+EBiyLuHtv/hX /vAjSp29 4ftAZ5P5QypAnCvx8EvFjFvCpJhg94kN9lRXd44yycHHov9E/3s9XPIymbxZaKA3alCr4nobPOfs0McF9Mp2Py+5nD+ogoYVv1/vToJGhCfhsI3pDJBjK/4EXN1mhIaBnklOBIkEs/SpFfDMrq7NaXdpMgf4twf/Mdg71AAETf5+G56fFXPWrEj/HWBPh96fb6+qhE7zydy3EMFhT0kcA/bI4jP3Xnd3469w2ytsIgzOpSja8hrVqnfrWuRX+WcOIujVuQGv93xtHAnx3v3JS3b8EUWJDIkZx6E/4761DUnaJmQXPibrSKyYwtGeENKmHwa5c+zwYlb8ME6Om6EATxUMZNkYBG5MIn3Ion2ZIJcoVFcfk/3HCciBfpGqDuUQPQEIAVmk80zmCdTlSAQ8Irsl7kGrvq7JukMYQtgchhglLhfowZaBWiLvHiX6+n3qQ/pzlZ0kgjgHW4dRxrQYn0O+ginAe3SENy0uCI1Lb/McWIl/fQhN8nvLz7G6VnIP/jqtfJt5W2O7YnKBj3s6TtJVQekfycuELfhdvh0Xwbmp+0Pw2BZNTkqDmM8gPoxjE3U7DwJ0kChtpFcbW70RVw/0OvLZHaosOcTZxXqrH+MO0AnY4jQIdyp/X3ihDycGE5QscqKCy/XA8tGIV/cKeuyfQM5DEgYcFBRAIgm7euzBYpm4+lYVdcviBHd2YaOZSa6Y2pyeXuKzWutU0GWKAbiGr0ZwtvQS7BYrpeQyLGJ1N5kEhX5tyvi/20b6uLESA1pSNze1GoM8m3RHavBfFOWWP2KJqFj3+aXkco+LNUW5qszafmubWmr0gwmwY//uJ4bspr97zYl5f14M= 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 Mon, Apr 08, 2024 at 08:44:31AM +0300, Mike Rapoport wrote: >On Fri, Apr 05, 2024 at 01:58:21AM +0000, Wei Yang wrote: >> The dummy entry is introduced in the initial implementation of lmb in >> commit 7c8c6b9776fb ("powerpc: Merge lmb.c and make MM initialization >> use it."). >> >> As the comment says the empty dummy entry is to simplify the code. >> >> /* Create a dummy zero size LMB which will get coalesced away later. >> * This simplifies the lmb_add() code below... >> */ >> >> While current code is reimplemented by Tejun in commit 784656f9c680 >> ("memblock: Reimplement memblock_add_region()"). This empty dummy entry >> seems not benefit the code any more. >> >> Let's remove it. >> >> Signed-off-by: Wei Yang >> CC: Paul Mackerras >> CC: Tejun Heo >> CC: Mike Rapoport >> >> --- >> v2: remove cnt initialization to 0 and keep special case for empty array >> v3: reset cnt to 0 in memblock test >> --- >> mm/memblock.c | 7 ++----- >> tools/testing/memblock/tests/basic_api.c | 8 ++++---- >> tools/testing/memblock/tests/common.c | 4 ++-- >> 3 files changed, 8 insertions(+), 11 deletions(-) >> >> diff --git a/mm/memblock.c b/mm/memblock.c >> index d09136e040d3..98d25689cf10 100644 >> --- a/mm/memblock.c >> +++ b/mm/memblock.c >> @@ -114,12 +114,10 @@ static struct memblock_region memblock_physmem_init_regions[INIT_PHYSMEM_REGIONS >> >> struct memblock memblock __initdata_memblock = { >> .memory.regions = memblock_memory_init_regions, >> - .memory.cnt = 1, /* empty dummy entry */ >> .memory.max = INIT_MEMBLOCK_MEMORY_REGIONS, >> .memory.name = "memory", >> >> .reserved.regions = memblock_reserved_init_regions, >> - .reserved.cnt = 1, /* empty dummy entry */ >> .reserved.max = INIT_MEMBLOCK_RESERVED_REGIONS, >> .reserved.name = "reserved", >> >> @@ -130,7 +128,6 @@ struct memblock memblock __initdata_memblock = { >> #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP >> struct memblock_type physmem = { >> .regions = memblock_physmem_init_regions, >> - .cnt = 1, /* empty dummy entry */ >> .max = INIT_PHYSMEM_REGIONS, >> .name = "physmem", >> }; >> @@ -356,7 +353,6 @@ static void __init_memblock memblock_remove_region(struct memblock_type *type, u >> /* Special case for empty arrays */ >> if (type->cnt == 0) { >> WARN_ON(type->total_size != 0); >> - type->cnt = 1; > >Sorry if I wasn't clear, I meant to keep special case only in >memblock_add_range. Here I think > > WARN_ON(type->cnt == 0 && type->total_size != 0); > >should be enough. > You mean change like this? diff --git a/mm/memblock.c b/mm/memblock.c index d09136e040d3..b75b835f99d1 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -352,16 +352,7 @@ static void __init_memblock memblock_remove_region(struct memblock_type *type, u memmove(&type->regions[r], &type->regions[r + 1], (type->cnt - (r + 1)) * sizeof(type->regions[r])); type->cnt--; - - /* Special case for empty arrays */ - if (type->cnt == 0) { - WARN_ON(type->total_size != 0); - type->cnt = 1; - type->regions[0].base = 0; - type->regions[0].size = 0; - type->regions[0].flags = 0; - memblock_set_region_node(&type->regions[0], MAX_NUMNODES); - } + WARN_ON(type->cnt == 0 && type->total_size != 0); } #ifndef CONFIG_ARCH_KEEP_MEMBLOCK This doesn't work, since on removing the last region, memmove would take no effect and left regions[0].base .size .flags not changed. So we need to keep the special handling here.