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 07B61C36010 for ; Mon, 7 Apr 2025 10:00:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76E776B0008; Mon, 7 Apr 2025 06:00:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 71D226B000A; Mon, 7 Apr 2025 06:00:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 595B76B000C; Mon, 7 Apr 2025 06:00:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 3B0BC6B0008 for ; Mon, 7 Apr 2025 06:00:32 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EBF09121258 for ; Mon, 7 Apr 2025 10:00:32 +0000 (UTC) X-FDA: 83306803104.24.64451B3 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf13.hostedemail.com (Postfix) with ESMTP id A5EAC20019 for ; Mon, 7 Apr 2025 10:00:30 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=TDPofvO6; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3uiLDLYj; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=vnpUT2q7; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=5wRz4k1l; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf13.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744020031; 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=gO8gUlagEjjRKBE8qIUBJy85YHLzO/w/+S9hYHBVBVc=; b=V+PcVlcgAXUIp0ObqA7zkGU+bV+CSvsxyPVBCEYO+w8IKJVSTDP8tLSMf6FTakSTW4ST+y 8RuZ+eJLybTL/ih8fjkJkYYA33lOEifAKYjfSbbGrsuSRk4b4kuKSwCydkQ9lef0Po54zw +M0ei4/0n/D21A84+ZYebzUUbYt3D+E= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=TDPofvO6; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3uiLDLYj; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=vnpUT2q7; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=5wRz4k1l; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf13.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744020031; a=rsa-sha256; cv=none; b=JvME77YG9m4Btt23NvSqZimuKOJkeN6aXr19Ka2+kqUAqha5aSBKCXUH9XDNHmIFcFE7l1 c4dL7RMehEpnZLBog5jtE10P5L8jN8wSAgYHAwb8XwwTFwo8E+bzcC3byBPdxqkx+mDxOw WWt3u0wwpum6IRmAEx+eTodneOJEDLU= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id E08771F38D; Mon, 7 Apr 2025 10:00:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1744020029; h=from:from:reply-to: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; bh=gO8gUlagEjjRKBE8qIUBJy85YHLzO/w/+S9hYHBVBVc=; b=TDPofvO6F1Y8G/iMtFZKnAMZtpFlx5zmZVOb7kkH5NAQw49q34yKEFZcKVoINGnsxyoW3H pGQ5Gc9rWElNdtpMKfvKpcJC1gHmIuVTfqyXAwAD4+uNLvmUiOaP56ZSixuDEcDzR/IuPS hjBcU3m8LVVV8lAAstxEw6jd/LRqX28= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1744020029; h=from:from:reply-to: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; bh=gO8gUlagEjjRKBE8qIUBJy85YHLzO/w/+S9hYHBVBVc=; b=3uiLDLYj4TFlJEyWoQGkpRj+OL4OgRzjqAEaKrMxItBlfq2s7LsulAN5tUV1pZkIC5DsLn QzZt3tS80A8DPiBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1744020028; h=from:from:reply-to: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; bh=gO8gUlagEjjRKBE8qIUBJy85YHLzO/w/+S9hYHBVBVc=; b=vnpUT2q7R7sEy+8ciehQCCBwcNDSh3jXUAv6bOoC5XLsRzL6ydzOxSLyLmWc9ZjXrx9uBM OOke6T0fUDa8mou/xtqi90FY86ZvNwhlLQ52aX7TJxED9obq9005ugXIF5KrO8cPLX843U b5SrF5Ag8iAILxKf4o3zY9Nnqm57nOI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1744020028; h=from:from:reply-to: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; bh=gO8gUlagEjjRKBE8qIUBJy85YHLzO/w/+S9hYHBVBVc=; b=5wRz4k1lbZOJznw6WfmxXJS8JTCr/qreaOvENFz0fQfO8SuGVYAidPEG5ma/73N0+QSvO2 8IZmC1Etilq3A4Bg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 783A413A4B; Mon, 7 Apr 2025 10:00:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id GSmtGjyi82fDTgAAD6G6ig (envelope-from ); Mon, 07 Apr 2025 10:00:28 +0000 Date: Mon, 7 Apr 2025 12:00:26 +0200 From: Oscar Salvador To: Jinjiang Tu Cc: muchun.song@linux.dev, akpm@linux-foundation.org, david@redhat.com, linux-mm@kvack.org, wangkefeng.wang@huawei.com Subject: Re: [PATCH v2] mm/hugetlb: fix set_max_huge_pages() when there are surplus pages Message-ID: References: <20250401082339.676723-1-tujinjiang@huawei.com> <18dde837-3fb0-43b0-5d02-f78948d68d77@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam01 X-Stat-Signature: em6w936h8gawcprjmamms877w8yfgbic X-Rspam-User: X-Rspamd-Queue-Id: A5EAC20019 X-HE-Tag: 1744020030-53080 X-HE-Meta: U2FsdGVkX192xcIetJLyq7/sIOOA5MewPHsDfwU3f/IKLQa0/UqqWWsVe8Sm96/neKMb5D1wjLLVUqtEuxgeELbW6UtQ4w1+KHnRoMgHDj/mQ8bBI3/FH30Icwptil4TbXqNR7SC+Oi5RnP2ApbMXKRFM1zIQJ0KAFUq0Vp4U+XjUBpMkBFGUL5g0H1p+vSb5TK4Kg2IRfGO8LnDju4/fOkuV2YQugd7TUtg3rcb8MoQGQ+NUbYGapE4FFvaZ91EFCM1tZl+TE/TlN8yVyDztnIlAXk4DC1ENASz9fIJPKD0jVEZum0lXgoCXamygPGKcN4ynO88aF/2E15OQtZMpQlTy+qUG7t1wwcWvA5pcGnDzSi6S4v+yNgRwzgL89IzIRfJ9a+kRmYAHxBLX9Jc2JYXGNRLb7oGDqgmewBZeiBC218In7E5tGrUy4+QZKqd1/tMnGtgOZwA5wQVK/uXy5m7ayAQM5taakSHSpctGP5D8Kqux7s0WTAm8r/fzZgEFXcBzRnAM/x8NKqc0gNU6lWgEsYTdXhbU81jIzUS+mdQh+vWvLX03kRVPANIjeXPfsh55FYqaFuVlx4W7QZNoHgelicBPBnsfiMDPKJaKV0m+lgu7nUAEzeVHtMEVT912gWvpLF2QgaAr3+lHy1ochZDvDhV07rJTmF3Xm8yzPCQDgMT1eVjzNGrW4JTUrc8hTgdo7iiCGouJg193ozpZvU89lPrJj3+w46RsITUUWPLSwkL9r589OxJosFlBy4htAyPcwShoCfOSMum0JlQN9QtkayprzLc47gS9M1gYXff13vzfFV+R0StqGuxI8KWwrCN6m6gn+ITEJqOPuPNh8VJMC7A/ESzgz2UkE3MEJyRCwrc168tIXqNMMW+odCegpA6j7UxpC3fcyqB+jiCV2GY6yQ0Mja38nK/FSpEUKW5IyAcF0WujajlcO/H68IYyEaM2wi5eZM/88Z8lCF umbORLE+ vBWs4doebYecnVoMxmDD9gHpqXPMT8xqW8vnijkiMrnfc4j90eg4voPnSNbwTOnGdNd9MLA2fnA3YGpi9n6kvcQfu5IS+0F8t2iZBY0HIA7NRs2yBX5uiqzf2Y7+BO6WsCYQmMKvhhQtyZPkaDY9hXLKvxkzgkO2CKMQhHpYfhdSgAxEZXdgahZo68iudQGggea5MYEaMAhLRytkJUUbCpNodgymDbd3cxGzEj0AMCCrCxYaou2RC6Fz8uEBJ4XuKeMSMvmjOgxtIoP3LdcODJxj2ezFn0foEVTgpXypdxiIw+uxsZiLKYUamJTNKzotKnMMKncMBZE/U9A4= 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 07, 2025 at 11:35:27AM +0200, Oscar Salvador wrote: > On Mon, Apr 07, 2025 at 03:23:08PM +0800, Jinjiang Tu wrote: > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > > index 39f92aad7bd1..4afcd5ce417c 100644 > > --- a/mm/hugetlb.c > > +++ b/mm/hugetlb.c > > @@ -3826,6 +3826,7 @@ static int set_max_huge_pages(struct hstate *h, unsigned long count, int nid, > >                               nodemask_t *nodes_allowed) > >  { > >         unsigned long min_count; > > +       unsigned long persistent_free_count; > >         unsigned long allocated; > >         struct folio *folio; > >         LIST_HEAD(page_list); > > @@ -3960,7 +3961,14 @@ static int set_max_huge_pages(struct hstate *h, unsigned long count, int nid, > >          * and won't grow the pool anywhere else. Not until one of the > >          * sysctls are changed, or the surplus pages go out of use. > >          */ > > -       min_count = h->resv_huge_pages + h->nr_huge_pages - h->free_huge_pages; > > +       persistent_free_count = h->free_huge_pages; > > +       if (h->free_huge_pages > persistent_huge_pages(h)) { > > +               if (h->free_huge_pages > h->surplus_huge_pages) > > +                       persistent_free_count -= h->surplus_huge_pages; > > +               else > > +                       persistent_free_count = 0; > > +       } > > +       min_count = h->resv_huge_pages + persistent_huge_pages(h) - persistent_free_count; I forgot to mention that before this chunk, we might still want something like your remove_surplus_pool_hugetlb_folio(), but that goes through all nodes, not only through the nodes_allowed nodemask and checks for free surplus pages due to hvo, and tries to get rid of them. But on the oher hand, we can leave as is, since "meh, we failed to restore those pages so though luck", which is the status quo right now, and I am fine with it. In the end, the situation can get fixed by itself as those pages might be reallocated again and then we have a second chance to restore vmemmap when they get freed again. -- Oscar Salvador SUSE Labs