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 B7F97C83F01 for ; Wed, 30 Aug 2023 03:33:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 374048E0042; Tue, 29 Aug 2023 23:33:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 324518E000B; Tue, 29 Aug 2023 23:33:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1EB548E0042; Tue, 29 Aug 2023 23:33:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0C0808E000B for ; Tue, 29 Aug 2023 23:33:18 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B7706B2ADF for ; Wed, 30 Aug 2023 03:33:17 +0000 (UTC) X-FDA: 81179350434.16.9BE81EC Received: from out-252.mta1.migadu.com (out-252.mta1.migadu.com [95.215.58.252]) by imf04.hostedemail.com (Postfix) with ESMTP id BF09F4000B for ; Wed, 30 Aug 2023 03:33:15 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=pj2D9fQO; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf04.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.252 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693366396; 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=S3uKzdW1DNd9/aFHR1lUQtctGFzoSLRbK9fu0L1Os2k=; b=FzbhOCr+ysTeZWvzHauXkZmahZkCCXhr3SpZjVPSvGJxJsm/lxKE5APzzIxO8utySp4JNc 9SCT7AQiuJQm2kwvCqgATM5MWNiVwEO49p6oCI/NBqMXyk09rNcLP94Sy9RrPKEH1Gixxy WHUq5MbZgB6b2CCrKtBv3J4j8sTtJu4= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=pj2D9fQO; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf04.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.252 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693366396; a=rsa-sha256; cv=none; b=V4IY2NdFGq0N4aRptUze2msnZj21S0yN0BROnkb+Pg1aYAt22+QZNiS1xvxz0heiYP4MFX CiKf4GpktMB9hkJcNJbSTSwdD2XRmyLPavT9FS72G/FfsuoiMlx6o7+LrJKxxUa7RmcszQ ew3c7Q9FeBdcrfXKeBiXqleMregy38c= Content-Type: text/plain; charset=us-ascii DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1693366393; h=from:from: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; bh=S3uKzdW1DNd9/aFHR1lUQtctGFzoSLRbK9fu0L1Os2k=; b=pj2D9fQOHXhvz+JX8x0nxO5LoRax4q/hU79z5JxJhJX7GHE8kupeE5pRYDBqaIcyPW35Mw dDXCqFvquYBOCEjFkFNa3gAiElXhnIDe7m2hI2yavOWqkoqY34A9+SMRZNhvhWyiBC0sJ5 OlxVut84SYpb/AiPB9CdT+1Gy8TwQns= Mime-Version: 1.0 Subject: Re: [PATCH] hugetlb: set hugetlb page flag before optimizing vmemmap X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <20230829213734.69673-1-mike.kravetz@oracle.com> Date: Wed, 30 Aug 2023 11:32:27 +0800 Cc: Linux-MM , LKML , Muchun Song , Naoya Horiguchi , Usama Arif , Miaohe Lin , James Houghton , Michal Hocko , Andrew Morton Content-Transfer-Encoding: quoted-printable Message-Id: <00753B00-69DB-499E-8BC3-5DF42DC5936B@linux.dev> References: <20230829213734.69673-1-mike.kravetz@oracle.com> To: Mike Kravetz X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: BF09F4000B X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: gatjz4tt5f7dd3neoqbke1my83rynrdo X-HE-Tag: 1693366395-250190 X-HE-Meta: U2FsdGVkX1/6+gI09f4P3YZ/br+oYV3agtR3tlV3rCOzpFN4KNJnuay3nrJJVwS/ec0jZJhLOakg92Y80EvGYMMkn8XWuyT16WidEzg74D7kqksIJd6yUBTKLj/ciMSUp7DfwqiF+7n1Oh8uuAS2e8x/oS+fa/jwhrji1R5NTrMWx69KRie4VpPq7df12QffJ635PlwmlSmoIAf/s87S+nDQXKn+I7YIqWVVzHzgzl8Bs38vgeW9mUJzSVaXlGPWNj30aqPSfdrNgU3vCdVfoypdV3yGWW6V07I/KyD5OH9qO63/591JBGvGMyKUOFFixg8RemERIYQhI+e68Zg+g0B+bKVJgXt/UCpzqxsDSvxd+gUpK7b/QhS8J2oOeLNck5TgQn4vHE2z5sxFWuQR4mQ5yfGaIfZTmfxpaItwpfwRgcexLjQOypZBUjm5lGOXNwgPfUqCS8jDummHwGykclnBTyvtQPmjmtz5UtCWXJntaA0wxlY7rr2bBgr3ArhgEccvk7r1FTYecQcER4cIKbUCGDxGABp0hdhypkdJhAqd1OsmUb0KGC9QfNECjJjDuBqbDCUrHs7BLcM7udyOLW+PRNXQ22urLnoJckhqsDcunGhnpIJbRZLO7zHBrfJ5t4EqyQb/Nw4raBuDFKz9Kgpv3jHFZ68stDRG5qZDOQPJrn57Q5hM4hlA6uyQP83s/SYz8cgJJYcQyZcOLZo9iHSy6NViA+fiQunizfkSYgVrfgsxWQKa0da9C2W7jfa3zLnV2lPJtCLGyUHwB7SvKQ+hD5Q9omMRp5VJkkg3RRfuLC/1B/iD1Zo6dhf0gYiMrngGDdUgY7smrtJPcsbct8ZYPwDhdbHGY+eVjDrFfrKFheKOio4hcsVPjlbVFAHXI/ANyWWvgVCnwmQcDSaGmJtKBOt7sXlpVvTgy5HZdLrTKcqQzDnPJZzweIL/olpry4EBp1PmLsDno4tCwwK OAxVcVmc E+Vh7fzLct39eZCkf/1fEd6oa2iV2/00ae8LvWysuGcgehsgJIF0IQg73f0tMf4R2N6AT2/yDr3BWr4YpWQcGNe1VuWNtSliWMWseOFX0IkZiSREvkCaO+Fm2pRHDsmATVCEIA7fO8wJbOQQkk2N07eWolb+GZUslptOzg6oQ8+YXP2aT3ehkj2Y9ig== 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: > On Aug 30, 2023, at 05:37, Mike Kravetz = wrote: >=20 > Currently, vmemmap optimization of hugetlb pages is performed before = the > hugetlb flag (previously hugetlb destructor) is set identifying it as = a > hugetlb folio. This means there is a window of time where an ordinary > folio does not have all associated vmemmap present. The core mm only > expects vmemmap to be potentially optimized for hugetlb and device = dax. > This can cause problems in code such as memory error handling that may > want to write to tail struct pages. >=20 > There is only one call to perform hugetlb vmemmap optimization today. > To fix this issue, simply set the hugetlb flag before that call. >=20 > There was a similar issue in the free hugetlb path that was previously > addressed. The two routines that optimize or restore hugetlb vmemmap > should only be passed hugetlb folios/pages. To catch any callers not > following this rule, add VM_WARN_ON calls to the routines. In the > hugetlb free code paths, some calls could be made to restore vmemmap > after clearing the hugetlb flag. This was 'safe' as in these cases > vmemmap was already present and the call was a NOOP. However, for > consistency these calls where eliminated so that we can add the > VM_WARN_ON checks. >=20 > Fixes: f41f2ed43ca5 ("mm: hugetlb: free the vmemmap pages associated = with each HugeTLB page") > Signed-off-by: Mike Kravetz Thanks for your fix. Reviewed-by: Muchun Song