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 ADF25C36002 for ; Wed, 9 Apr 2025 13:58:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 006E3280083; Wed, 9 Apr 2025 09:58:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF7FE280081; Wed, 9 Apr 2025 09:58:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D97BE280083; Wed, 9 Apr 2025 09:58:46 -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 B8972280081 for ; Wed, 9 Apr 2025 09:58:46 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 76D2159770 for ; Wed, 9 Apr 2025 13:58:48 +0000 (UTC) X-FDA: 83314661136.21.9706672 Received: from mail-yw1-f170.google.com (mail-yw1-f170.google.com [209.85.128.170]) by imf24.hostedemail.com (Postfix) with ESMTP id A532D180004 for ; Wed, 9 Apr 2025 13:58:46 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UmvbYWa1; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.128.170 as permitted sender) smtp.mailfrom=joshua.hahnjy@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744207126; a=rsa-sha256; cv=none; b=eYa8bK89L3R7b3RrPSY/VcOXrQlIKeq1ZmmL3yhaor5WFQG0xdXyScQka0swDyShsXm4bM BRk+Goj5OAjtydmrxZP5/ENEXs1ufaRMofb2rm2MsUpEHe7f7OnPG8YNDUZu1OUv3C7DE5 eSufFGFUgpxBdRJqm3pIJVV2RhRmoYg= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UmvbYWa1; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.128.170 as permitted sender) smtp.mailfrom=joshua.hahnjy@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744207126; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=IFkzRRjGlfniqiiK4NmzxF6T91eKT4uib6F/VnX4S4U=; b=yc+cjX1l34d3egofe4BvXWhC1s1ZJ5wJiaUIgsA1dxvhl7A/LHeTiV2sZvEOg0TnFdChZ5 rNGi907dz/01zXLERqfcBLsPyQ/JPFnRzGQrbkD3lshfJaewoUmKiDTnisF3AOhX/KPqjj k/D6LYHdULv9IRnnJcGeDhLv4HkI+/Q= Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-6feb229b716so69705037b3.3 for ; Wed, 09 Apr 2025 06:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744207126; x=1744811926; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IFkzRRjGlfniqiiK4NmzxF6T91eKT4uib6F/VnX4S4U=; b=UmvbYWa1O2cJUb0mS7igaHRFG9yTiyvSNMaQsVRau2zhrSgaUXciH5JVwC9NKLfVYt TfVH9h2COe7DE+XxWEQVWxJjC76Of4r3er/hrVHjZGwBGx/5xzosUbSsrdG7/8xwULih Xp7W0vK4k2v49NKbjirOmOiJvvkc5aTpJmonH9ucP13dwvxU1Gu5ATq0j+lTAADNsoaD eQQvaGwhdadU0RQqnpeWFQ2KB+Q36ozGrjhSXtV5yviXbp0KWGd5Zi+IrEdMExhpIpKY 3FcsfHEZEKSbGLF8SL/xD5FoL1dJBjjmhymIsJHgYSQJLRQCPhJyS9ClwCZKRiva4m4n wpvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744207126; x=1744811926; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IFkzRRjGlfniqiiK4NmzxF6T91eKT4uib6F/VnX4S4U=; b=VFP3nW8EXjvzMWL237qrUhewB1VlPcEMcwYAEtEfTMmo6Szwo3vOSjQfuVX7lJyFZB 7WBTiYy29ESE6sJkvr/i0Wt8J7h9Fpb+ZpSHXaNcoryzdAaE8m6N8Xm0ZKG8IufSsD/h X7aXxEVb7HVtj1Dq/IVc/NwFMVhjg0tbT3nlDEVM0wHY0JDgIjEAdIXXEZC/wcdut45v yc60UN77rjHq1W5WpGOvEuko1bSaRg52HdI1v9jThftMXf0wdlY0y0rk3LYEP3ae9WDR uFjpGOWVAHEPNN36jsYr4Yj7ruDcQbdRy/RsOgjs2ArLV5VDmyFNHwiDVU34CplBa4Lt yiiA== X-Forwarded-Encrypted: i=1; AJvYcCWU6NKvKc+YoCg9ivOx+JgOzB3toP1e01i8vDVgEqqf98layTtrid22+l0gaDRoY7lBIqd1I1FGPA==@kvack.org X-Gm-Message-State: AOJu0YwyvfQdmLAYzKpdzE1QOLism0b2kmJGu/ZxKwcDCyllYnhfYtMq SMjyg9vLMDKYVnVjyf5byqByH0nzTtgftRVw8lepc2ys/9vJwKXL X-Gm-Gg: ASbGncu6lRgJ+nbhtiwOPMUVE7UP0jrDguZdGu58rZ+LeJzZwksY52CQvUrKcV5Fczy uZi3N+nxGqWkdQlwSmtimqFYQ9CiaDGfGIg6bSXIR+HTEPtMN4baa5nfZzmvzzRKUiGngry15eI IpUDWXYwvftEKSG1InzbW17mgExTwDmoRZxDiTUtwirOKTq5sQrb74r6wQycMVSoa7kmphwZeR2 Bile0B0K7ppmidEZqwcpu4szvXBqTEcmF3b2xddf20TSKQyu4+PfsgpBe8CNRmPbFUvujC93pCj DHr0X70xMxD/M6W56DJ0wJWx9PXIDbQwfsUJdt0vBdDhPQf1Qg== X-Google-Smtp-Source: AGHT+IHgPEjLwXOKG3kfB9pqA9r0caEyN2w2YfhQl5CfbDz2Qdkbj+qyNa/RbQvICrjyM89E/6a6fA== X-Received: by 2002:a05:690c:6f87:b0:6f9:88ba:aa5d with SMTP id 00721157ae682-7053ad6c3bfmr40470387b3.9.1744207125590; Wed, 09 Apr 2025 06:58:45 -0700 (PDT) Received: from localhost ([2a03:2880:25ff:1::]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7053e372ed0sm2728577b3.93.2025.04.09.06.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 06:58:45 -0700 (PDT) From: Joshua Hahn To: Wupeng Ma Cc: akpm@linux-foundation.org, mike.kravetz@oracle.com, david@redhat.com, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH] mm: hugetlb: Fix incorrect fallback for subpool Date: Wed, 9 Apr 2025 06:58:43 -0700 Message-ID: <20250409135843.2012726-1-joshua.hahnjy@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250325061634.2118202-1-mawupeng1@huawei.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: A532D180004 X-Stat-Signature: oogyhbafk48yi5fzogy3sbrjdimef48n X-Rspam-User: X-HE-Tag: 1744207126-194182 X-HE-Meta: U2FsdGVkX1+WbS3gnhKw/yiPdjESyf9Tgcew84YTDqyS7iLlK/ydhFRLL9ZR1F1toVuWhTXjR4+qseqWNQGUHQH9vbnm+c3VZFCfhFT0eSGh9ja1/9KGq1Km2YchI+5Y/lXBCl+4A/Mv2i57BKaUO6Rl7oZsBNGfCT8fNHxEpcs61F+7yFspougvOvdLXiuoLL66ckaiRm/ApU7OZJsX0JV6vape9UloOnfum41rtpx7dFYqNDY3TrlgkpJl9eWTcc0eV+Bh+JKTQ/iYRKIgBBAFSnG/mx0Vb7eXUMxKO+c07QevMmUPmaRMsIIKAY4A8Gl/6CdMMyj/PnepZrRKLqvBbnezdyx8/dTf5fEUOR9CWzwLuNNS8eXGZCB+U8z0YYv6OYLd2Pd6zAsHk3/w4IsZ4AajIs5TUUAfYIN3N8MoML1r+fKQVWB3dQ63MHLIOiNoXYKpBrv2kxPhuUbB8kbD2ICYjOg83bizw5QEGrQRgCOzoQYlNuARLVmSt9cwhKdPFvMoh8GNerFXavl7GouDMKP4AaWlLSWooYSDFi0o+1ThvaYB5NQo04nX5QjqDK+xa+TERYW7aNQ6TPExgVPJjgVp8wdGU8zyvtNFj1WcTILOEXXxpBjT9PZGGPL7b8ZUyegJb0Tv0o9dwpBcpf0RD3HKJ8D4MvZKItrQ+MafPFqAFAIcIVa6LWkbH+Mbv8+p1pqyPZRM5fwxcpjh9vhtwTxv9wkX3abNEek+hoDPn2mJ5FgQ6B3GV8bW+4u1f9OcmGGi3XVcJ8l8RqPz75R5rvmeW+3VvD1FAlpifGFsS5xcxl1Qw2nBGlHNNOM58cRLzaCRi85YT9cAFrinYRCSoBCHdqW0iZyVX5yjDUJAnEImxrBuhMZRrYs4t8wmkY7PvHPFIElGW8xQ02xVffotmL8A1Tzgiy5ZgxBO9QWfz7LZerv6a9WV3LF1JKT5Q/tdir4w5Oo02NfDQXM AfloYAgh ze89KYITeu6IS//BxsWJFcobkPjznoabomSPEbNMpTq49snA3SnVwNcgAOjPzbfrxBFrSDSH0yjoxvxQGQ7DbbPSdSzJnsmwdFGhPeRzFuGR/i0naLNjlH7+rivI14QgfS3nrBl1l6FumYF1dD+zgBgDwz5D1RbYkuV42NRCtZagFZlJvgp8TyTSjz0xmGRuuFAk28tv+k0WXX+Zc/MqDDN92nu2SZ7ugtORqYQJFp5NZr0t8MXePFxpMZQWs+2ML97T/nOqyePUcMh7VYfGPU7PDaPVU66E4YREhhYJhXYDya8kjo1kPlM1ugyVrxS8v8wfpzDUi4Me9DUNoJ17vxl8RLviMm/2Wi2yyDcb7EEyHHxO4VvlX0CvGogciQbU5SOJ4Z+bVKZla81KiZG7sF12SUUb/gefFMQDa6ZBJqG98E3CQQAnS+t1I0zcN9ZJNdiX3a4iQREID5mMb+fVu+0ydNDwSIzxa/qV6E0Lbha26z1Ee3wIyKU5E5w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000408, 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 Tue, 25 Mar 2025 14:16:34 +0800 Wupeng Ma wrote: > During our testing with hugetlb subpool enabled, we observe that > hstate->resv_huge_pages may underflow into negative values. Root cause > analysis reveals a race condition in subpool reservation fallback handling > as follow: > > hugetlb_reserve_pages() > /* Attempt subpool reservation */ > gbl_reserve = hugepage_subpool_get_pages(spool, chg); > > /* Global reservation may fail after subpool allocation */ > if (hugetlb_acct_memory(h, gbl_reserve) < 0) > goto out_put_pages; > > out_put_pages: > /* This incorrectly restores reservation to subpool */ > hugepage_subpool_put_pages(spool, chg); > > When hugetlb_acct_memory() fails after subpool allocation, the current > implementation over-commits subpool reservations by returning the full > 'chg' value instead of the actual allocated 'gbl_reserve' amount. This > discrepancy propagates to global reservations during subsequent releases, > eventually causing resv_huge_pages underflow. > > This problem can be trigger easily with the following steps: > 1. reverse hugepage for hugeltb allocation > 2. mount hugetlbfs with min_size to enable hugetlb subpool > 3. alloc hugepages with two task(make sure the second will fail due to > insufficient amount of hugepages) > 4. with for a few seconds and repeat step 3 which will make > hstate->resv_huge_pages to go below zero. > > To fix this problem, return corrent amount of pages to subpool during the > fallback after hugepage_subpool_get_pages is called. > > Fixes: 1c5ecae3a93f ("hugetlbfs: add minimum size accounting to subpools") > Signed-off-by: Wupeng Ma > --- Hi Wupeng, I hope you are doing well! It's been a while since this fix was sent in, and there hasn't been any comments on the test either. Would you consider sending this patch again without the RFC tag? I think that might help in the way of moving this patch forward : -) Thank you again for this fix! Have a great day! Joshua