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 D4E58D1A431 for ; Sat, 12 Oct 2024 03:56:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA1E66B0098; Fri, 11 Oct 2024 23:56:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E51736B0099; Fri, 11 Oct 2024 23:56:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D194C6B009A; Fri, 11 Oct 2024 23:56:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B58EA6B0098 for ; Fri, 11 Oct 2024 23:56:12 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CC44A80289 for ; Sat, 12 Oct 2024 03:56:07 +0000 (UTC) X-FDA: 82663587300.02.0DDDEB6 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf09.hostedemail.com (Postfix) with ESMTP id A5AFF140004 for ; Sat, 12 Oct 2024 03:56:07 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=e8reeIsv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of suhua.tanke@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=suhua.tanke@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728705341; a=rsa-sha256; cv=none; b=iU64pK1bSdo67ZGNww8kh/lKD0R2F/Mjob+MPEySep1gcDAVNn9G/77NbuDMJm9NQ8FP09 SgR+8H7B24052Cl1nPse1H4k/DY02MRDHdaUMb+Cftn0qmFhscWr6CgcCzz3mGBetDf2br ZH6CwM/lnauu+L7y+Ka3bGXAV4cY6TA= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=e8reeIsv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of suhua.tanke@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=suhua.tanke@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728705341; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LU52FN+J0/hnIDa7OCRKyJ9HWXb9RLs18SXoJG1d8Ck=; b=ajypxnKUq9mSX4RFEuQhVvksoUVDera45dpo/1gfunlVRT1TUbVmOlopYsrRfRW0LHuOSm Ym2409uvthtE0gfUs/KVXmYjrlCGXB+9SeP+C2q4nD7xasr+S2iPwW2lAO5x9VYVdq5jQN hohnLT6VPlR4Seoq3/5nv/TNJwd0ZrQ= Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5389fbb28f3so2435189e87.1 for ; Fri, 11 Oct 2024 20:56:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728705368; x=1729310168; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=LU52FN+J0/hnIDa7OCRKyJ9HWXb9RLs18SXoJG1d8Ck=; b=e8reeIsvV98SP7QKbJ/QfSLAY0G3oQeL0udlEklsIzRpywX8Kyho4QQyhF2rEGFBU9 uSAHNegw9GL2eAnyc1Nr0KvOvpa9p9JyXZ821wS+AbOKUjCXsrX4qkkAFjbq7HYhwUZH mco1FGgHCFeIRo4Ku5xqanKAdQd6h9pbT+xWIdg8h0kvGCIC8NBekQt0ppsUulOTLpPo o7MGU80Fy1p+iX/CysO/B0Mga3PpGAqBE+NPFq6A9HgyiKX+cUkzBGkxxjOqcFPYvhgS z9qC5JdmvcG1MdkbnlTRSZ+Ca/wdZ2SBGexnF8JHJuTXTrn5BgZ0MKKYHL6COURkyVfp iNvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728705368; x=1729310168; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LU52FN+J0/hnIDa7OCRKyJ9HWXb9RLs18SXoJG1d8Ck=; b=mydDm8n/+Mwz9z95lNx934Lm2C4Ugv9kLHN7StULtmBoI8cRqeEHmlNIYOXzGomH/i XwFuEDXKCNPbsaMz6zTpn6iNYCugsqKLSDFMnpL9SG+LkqD1rq+IRsOV3tdb93klmmQJ qYpVdmRNf9eYXJgDhLrBtDBsSQueFRPC63V18aWPdwh1Dmgmh8ru5f4xYbiWWZJwt37l BMow5Fl0iJ1F7X99GLHMS+0liA13wL9zP9lLjIKgsuvtdoPirdAzZsEm20ktAcvDtNI4 9WkjHKkhBRTE9IotHeHZmiPzd1/ty+rL6OqGdg0Y6P0VeP6El+IfEz/z52mx4QutHr2A o6PA== X-Forwarded-Encrypted: i=1; AJvYcCUbP/VHXJU/74Js4tMWmHQhdAVfLKsD94kRSfz1V1BP9tE/yYumBFakvdErJPf3x9DS4m47QggTsg==@kvack.org X-Gm-Message-State: AOJu0YzfbwjmAZ93D2Ibb3KnzdC+hlNw0lmbxLLG4OE277zBwydrV67o wxbPHzeMXizNk+aHvXHWNnLdz/oYVM5QUVM424P8lhmDF2HeHhqdVOh4LWNJA8ItXRfQTD243eA +wpbpnDMlpkNT8iVqMyuF2B10fwU= X-Google-Smtp-Source: AGHT+IHJ3suir3QdeEfWYMb/Qkj1g+JwmbDCoY3KQ1qbRzkCF3cbRrKILDnEpJgSLbB+8jTEOG06fFokookQDaybnUk= X-Received: by 2002:a05:6512:10d4:b0:539:8ad5:50a2 with SMTP id 2adb3069b0e04-539c988197fmr3216740e87.14.1728705368045; Fri, 11 Oct 2024 20:56:08 -0700 (PDT) MIME-Version: 1.0 References: <20240925110235.3157-1-suhua1@kingsoft.com> In-Reply-To: From: Su Hua Date: Sat, 12 Oct 2024 11:55:31 +0800 Message-ID: Subject: Re: [PATCH v1] memblock: Initialized the memory of memblock.reserve to the MIGRATE_MOVABL To: Mike Rapoport Cc: akpm@linux-foundation.org, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, suhua Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: simfhpcauyoeroqo63bfjcqi8f1kobgq X-Rspamd-Queue-Id: A5AFF140004 X-Rspamd-Server: rspam02 X-HE-Tag: 1728705367-489201 X-HE-Meta: U2FsdGVkX19FUBWSGXeGqltN1KxGxLq4A7DFxSQ8Y6fEhdb+8n6FM32IuzufW9jzC4HbZs5CcaBgf2lwQoKxZIjccDGag4aUgXCVuGagJm2TvU4pCVfNrqACKBqhKE6yD8iN0zG95/xqwM+FjtpvdDLYeKQospW457h8GSwiBIumKbWPV4Dr9bRYMNVHgp8Ox6qNb2hiWI4S0SgnZQsABcVaq/tMTsgrIT854VmR0rk+lrKqi5kR9tIr0vZeA0B3VEiK9aa9O5SYwtCy52niKEDmsx7DRH4yaMCT8ndQcjOtJ4I81wzEkKZY9pspEspkn1X+UwdOH6/sR6nWqZBDVEUFghyPzI3imXaaXgntEJMp8+x8SHTXOAppjDPq0dbJQIKPxsstaTe+wDPMh+Ugcb54R4oSpL/RyJq+ZbRHO22MOEkIfnyo5lOVKiFqhi0IosmBEhIWysI01kkQDM9MQDtULdqhI5wBFTJwZbupm4QbaMlPoihIKLoyNIWtzguFy6J00NmXVPrGcgpl0ZLYJCkNgqcn0K9BXBQPjfqNEJAs2EGrJqp/dAPNL/fSD0gVHqyxj/kAhOHoEkbvDgAgthdjHsjoRDphXK5J3/F6kt7DxUAtpDQd8OpjxtNjBAxIrrOFnPy8aua1WnEQppP9F6d/f4o+s03M2d67zMk2n1XrUDGQCbJJOfoWY0XmP7SH1OyZhsRD3t1D4306gU/ActmyjY2HrdB3+qml9iSRDlBNrV9wuFYwAzgy0s6sKGiJsTfrFSpgBch1qnR+ZwJ0Fgd3fhEYsLwFTZlemSxR3peesqCECPWPcBTKZDqHEQvg+5d/Jf4MVuiUQgEON0ZimWKuCobGX12vAJGdwK8e9Z4X69YE/lQ6XYjNXe6Ariv/TYdMtRIgA1XcaXa3kv10ErgCu1e72Z7+nCa1JTmfAgT3Ebo/7v62bCpPbJnwM0P7WXBtjhlPwYsx4z3yecc luyjYWMm 8XCgkYYjccdGPpBcMdYU+YsClBg+1wsknjNCiIJb1aB9IFqngL9y1yKoo6mZg64PaSH3c7yp39Dr39SuZuSuYw3xaOO5E4AUOUo3pW2zmUlJvWGXjK8Xhf2TJaGwueRYdbUKqmAb7w5k7TLbWa1MnGSCuvL/hRuFxC70IbwGgaEf62z7gOn6rDw6oGM8JryvMBlYi4mOP54/fzLXjSgkZqndiP0fHbD6BJ2mPfbz53tTG7LufCjRznw+kH0VwV618lyuuOpyhqriwrwuIVH1YrzabdAZIMOwD+r0Ng/tb09pKwu7gmnCf2kBIzTaeLSZ5lxDYqoD0PVzZTT5zijlzZC79PydKYJsFgA3Idc8tNXBRJ8yNuZKG1haTHhb8UJRoEy0Hy0nvdPr7Vo2MJONtP5gKXDlvN0wuZabQMBXqae19d33rto0eeu8w+Ly0GWy725RTn58zFkJP2ya4F7x8Q0g4Jmmk5h3a8/kX X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Mike Thanks for your advice and sorry for taking so long to reply. I looked at the logic again. deferred_init_pages is currently used to handle all (memory &&! reserved) area memblock=EF=BC=8Cand put that memory = in buddy. Change it to also handle reserved memory may involve more code changes. I wonder if I can change the commit message: This patch is mainly to make the migration type to MIGRATE_MOVABLE when the reserve type page is initialized, regardless of whether CONFIG_DEFERRED_STRUCT_PAGE_INIT is set or not? When not set CONFIG_DEFERRED_STRUCT_PAGE_INIT=EF=BC=8C initializes memblock= of reserve type to MIGRATE_MOVABLE by default at memmap_init initializes memory. Sincerely yours=EF=BC=8C Su Mike Rapoport =E4=BA=8E2024=E5=B9=B49=E6=9C=8829=E6=97=A5= =E5=91=A8=E6=97=A5 17:18=E5=86=99=E9=81=93=EF=BC=9A > > On Wed, Sep 25, 2024 at 07:02:35PM +0800, suhua wrote: > > After sparse_init function requests memory for struct page in memblock = and > > adds it to memblock.reserved, this memory area is present in both > > memblock.memory and memblock.reserved. > > > > When CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set. The memmap_init funct= ion > > is called during the initialization of the free area of the zone, this > > function calls for_each_mem_pfn_range to initialize all memblock.memory= , > > excluding memory that is also placed in memblock.reserved, such as the > > struct page metadata that describes the page, 1TB memory is about 16GB, > > and generally this part of reserved memory occupies more than 90% of th= e > > total reserved memory of the system. So all memory in memblock.memory i= s > > set to MIGRATE_MOVABLE according to the alignment of pageblock_nr_pages= . > > For example, if hugetlb_optimize_vmemmap=3D1, huge pages are allocated,= the > > freed pages are placed on buddy's MIGRATE_MOVABL list for use. > > Please make sure you spell MIGRATE_MOVABLE and MIGRATE_UNMOVABLE correctl= y. > > > When CONFIG_DEFERRED_STRUCT_PAGE_INIT=3Dy, only the first_deferred_pfn = range > > is initialized in memmap_init. The subsequent free_low_memory_core_earl= y > > initializes all memblock.reserved memory but not MIGRATE_MOVABL. All > > memblock.memory is set to MIGRATE_MOVABL when it is placed in buddy via > > free_low_memory_core_early and deferred_init_memmap. As a result, when > > hugetlb_optimize_vmemmap=3D1 and huge pages are allocated, the freed pa= ges > > will be placed on buddy's MIGRATE_UNMOVABL list (For example, on machin= es > > with 1TB of memory, alloc 2MB huge page size of 1000GB frees up about 1= 5GB > > to MIGRATE_UNMOVABL). Since the huge page alloc requires a MIGRATE_MOVA= BL > > page, a fallback is performed to alloc memory from MIGRATE_UNMOVABL for > > MIGRATE_MOVABL. > > > > Large amount of UNMOVABL memory is not conducive to defragmentation, so > > the reserved memory is also set to MIGRATE_MOVABLE in the > > free_low_memory_core_early phase following the alignment of > > pageblock_nr_pages. > > > > Eg=EF=BC=9A > > echo 500000 > /proc/sys/vm/nr_hugepages > > cat /proc/pagetypeinfo > > > > before=EF=BC=9A > > Free pages count per migrate type at order 0 1 2 3= 4 5 6 7 8 9 10 > > =E2=80=A6 > > Node 0, zone Normal, type Unmovable 51 2 1 28= 53 35 35 43 40 69 3852 > > Node 0, zone Normal, type Movable 6485 4610 666 202= 200 185 208 87 54 2 240 > > Node 0, zone Normal, type Reclaimable 2 2 1 23= 13 1 2 1 0 1 0 > > Node 0, zone Normal, type HighAtomic 0 0 0 0= 0 0 0 0 0 0 0 > > Node 0, zone Normal, type Isolate 0 0 0 0= 0 0 0 0 0 0 0 > > Unmovable =E2=89=88 15GB > > > > after=EF=BC=9A > > Free pages count per migrate type at order 0 1 2 3= 4 5 6 7 8 9 10 > > =E2=80=A6 > > Node 0, zone Normal, type Unmovable 0 1 1 0= 0 0 0 1 1 1 0 > > Node 0, zone Normal, type Movable 1563 4107 1119 189= 256 368 286 132 109 4 3841 > > Node 0, zone Normal, type Reclaimable 2 2 1 23= 13 1 2 1 0 1 0 > > Node 0, zone Normal, type HighAtomic 0 0 0 0= 0 0 0 0 0 0 0 > > Node 0, zone Normal, type Isolate 0 0 0 0= 0 0 0 0 0 0 0 > > > > Signed-off-by: suhua > > --- > > mm/mm_init.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > index 4ba5607aaf19..e0190e3f8f26 100644 > > --- a/mm/mm_init.c > > +++ b/mm/mm_init.c > > @@ -722,6 +722,12 @@ static void __meminit init_reserved_page(unsigned = long pfn, int nid) > > if (zone_spans_pfn(zone, pfn)) > > break; > > } > > + > > + if (pageblock_aligned(pfn)) { > > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVAB= LE); > > + cond_resched(); > > + } > > If you are trying to make initialization of pageblock migrate type > consistent with or without CONFIG_DEFERRED_STRUCT_PAGE_INIT, move setting > of migrate type from deferred_free_pages() to deferred_init_pages(). > > > + > > __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > } > > #else > > -- > > 2.34.1 > > > > -- > Sincerely yours, > Mike.