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 BC462C19F32 for ; Wed, 5 Mar 2025 20:51:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6EEB280005; Wed, 5 Mar 2025 15:51:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BF891280003; Wed, 5 Mar 2025 15:51:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A72E4280005; Wed, 5 Mar 2025 15:51:12 -0500 (EST) 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 81AE8280003 for ; Wed, 5 Mar 2025 15:51:12 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7779BC0A98 for ; Wed, 5 Mar 2025 20:51:13 +0000 (UTC) X-FDA: 83188692426.26.34CF9EF Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf12.hostedemail.com (Postfix) with ESMTP id 1CA364000B for ; Wed, 5 Mar 2025 20:51:10 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WvOPvzYW; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of hughd@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741207871; a=rsa-sha256; cv=none; b=wnEqE4ltKHt2WNUzu57EkqmthnE+0qrROXdJcZtnWvADY34hRMW1xTQMyohOHBiGeWgdy/ RNqoPrcmYO3WLZ6OlMcWGHJaLMFIHRRswLf0g+FUjR9TZhmrTtbsmczQGiIw8Dov9gWTTr ec9y5Bf0Z6ZbPToHq+6nAPSq5p6pLWo= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WvOPvzYW; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of hughd@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741207871; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GhfWjnxi423UGUnC8mciMuHBQ1z3/MYrVutTlINTcRs=; b=6opMRq3TJvdjThW8sNkV0a25ePcBl9me5CHbm20tAuM4V515SSQaIWqdYMdwuvQeFPeD/A 9YELD5w48C02+nHj5WXzDgow2DQI8wejkiiWTidNCFMZvNlTBK+cSaDCRMLGZ23RhZJYVx qgRowM4OhOGLn0qQ66mcIYWy75SLx8E= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2234daaf269so22389585ad.3 for ; Wed, 05 Mar 2025 12:51:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741207870; x=1741812670; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=GhfWjnxi423UGUnC8mciMuHBQ1z3/MYrVutTlINTcRs=; b=WvOPvzYWoLI+QAdujNhAxxsKSw3o4vjhU4kcyhSd8Q1sC4X/sw2OlUFFRDqlFGEu8O Hy7tU5JA4tJZxpS62XTvIZmMBGgKSrhR8SUEvNnrOzftyXE6iPLNqyzjIqJDAlqpOQFK Cbl2BLRVRSk2Hc0fTDxoK1WQ7AwmxShnXlsezSi0AHQkKEkg+OQN5UJRC6QYS8RZfcRf Gsmi/O11kAOLwH700HJv7/5t/1Bsqa6PxJb3SCXAgG+4Mk4QpDaqLJkMo0nLfNL1ISe1 XTi+uqNrMoKKD1PeyzKj/zirx3uIpDu7bnkVgWzK+OgzxDpeBbCvCcXHC8K1ImspdmYK NKKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741207870; x=1741812670; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GhfWjnxi423UGUnC8mciMuHBQ1z3/MYrVutTlINTcRs=; b=W8XADB6oAV1uxy+LX2o+47oFaYL7AHz4xa1qahgph63UhmJMQaOAjUEhe8CBvWS+EP PaekuchnD1bSJSRhqKv8eIpOK8fbdjKUA/V+y9buYpNxUshOIuDLEX37WJhaWlZuEHx8 z1MkWlZkOYbtRWENqdkhL7/ZMlMSs8GPoajOVqze4IBV3+s/qIxd9iku9YIVRVNKz7FK /dwz+lbRmwLN+qE3YUuqrWZJl+J74vRUjvZZ7bD3BvgZI/VPeVQesJOuNtk/n9ocPUq6 3SZDKsIAASF4i+hLcUym8D0XwJfONwEJf3UhVP+wdsYKcxqwcvKAyX7w6V6YWCKrl0cf xXfg== X-Forwarded-Encrypted: i=1; AJvYcCXDrcauOhvKM81L/rLyH6fmF20n6KV3mM8ZOOGBeU3EG3HMvaEpZCk28PAC5Qfsg/irochiGuzkvg==@kvack.org X-Gm-Message-State: AOJu0YwFKMFLP3ApFVTcvzPNjSFZ92mjYHhwfrS4avblu7Ro2xSVoP6Z S+A078oIcpWNOS6pjFiu9MR7o1lieP7eu1GB3mzrB7ffEBKFUYsSfMKB50MRMg== X-Gm-Gg: ASbGncsoNQfiAmQv3ljrc9sMtpmdnlxfk9uP3SV1mXPxEYu8UoVMQQkd3XQo3P3M8dx PLManwWZWqBDX78299ERf3VFzKUljl0HzLH/fi+qJunG1ffUUplQnIu09T6Tow/9cpsiujvkhIP j6nerdbzoy7khQ205+e7ug8fixAD4J3c3bsG5pbWs+G2/gFk/zKpTvM7lJ1ngjXpHEyrodWK5wd yLFcnCirS+VabT1+BJoC4h9m4szcZ055tnErYvPxfSMVFzX3sr0lBRN0qetfQNBz1ytpZfauDj/ AE2eT5GBZWFMmbxUJnPBp/Avj6aJhiSMFISM9+sn1GANsxL8/Faoiwo3/OimCnPzeFcaovmaauL tXlnKiK+bhE3eWqa9oNhxQ1Fy2BSe X-Google-Smtp-Source: AGHT+IE32bLw2wlU1GnZf/65XqA6smz9VmkaRVDH9Oh8jcxy1XpzYMw+ZpyVO6VEHxvdny06qkBlLw== X-Received: by 2002:a05:6a20:9c9b:b0:1f3:290b:7be with SMTP id adf61e73a8af0-1f3495aaff7mr8642792637.41.1741207869678; Wed, 05 Mar 2025 12:51:09 -0800 (PST) Received: from darker.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-734a003ec5csm13872238b3a.144.2025.03.05.12.51.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Mar 2025 12:51:07 -0800 (PST) Date: Wed, 5 Mar 2025 12:50:58 -0800 (PST) From: Hugh Dickins To: Zi Yan cc: Hugh Dickins , linux-mm@kvack.org, Andrew Morton , "Kirill A . Shutemov" , "Matthew Wilcox (Oracle)" , Ryan Roberts , David Hildenbrand , Yang Shi , Miaohe Lin , Kefeng Wang , Yu Zhao , John Hubbard , Baolin Wang , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Kairui Song , Liu Shixin Subject: Re: [PATCH v9 2/8] mm/huge_memory: add two new (not yet used) functions for folio_split() In-Reply-To: Message-ID: <238c28cb-ce1c-40f5-ec9e-82c5312f0947@google.com> References: <20250226210032.2044041-1-ziy@nvidia.com> <20250226210032.2044041-3-ziy@nvidia.com> <2fae27fe-6e2e-3587-4b68-072118d80cf8@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 1CA364000B X-Stat-Signature: 8kzrz53jkenmy5ajy4ffqhf6orqp9nke X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1741207870-988837 X-HE-Meta: U2FsdGVkX1+kFmDgz0/k6t2QS37S+wJZi0sMbOn4nIwpJRonCKxzEm0gSei+MW4S9gpB3LmN2lYI8lwwjWnRYl8OhfOjALZWsxpc6aA9+w7jZj2GHWmIwHTQfx20R57F+fOXNVAklPPsU/kw2XroW3TauG7MU1L8rXwV2Emw6z4yIk6gtezS8IWCl+kqwBFyOaOqvBKyHn+JYqdwNRPXZkdtXK0qZLv5BHiWCukHOKgKrb5aYZ3LMRua9W4R8iJlbgHBIiy+7P7fYp9/i8l0/xuQbZO9FbNaQCMCJWcaRIj9PbgL1OWui04+O8kOSPSdiw369XOIQVfOeYPTl5+Rv9urefN0yqtwGXX5NoRynu7dKD8vWvOyIx+N6Haz/d4zsvMJUoweXAgnbN+1Sf9+KsemP8J+bkiAoO+M05XSfYd3z1fg2aCzNfDGvxA23NBsfaF2ayey4ZNrs7MAUTQZaPHVMHRbZ7mWd/xExEBQSWCBIGkWBXS1hHFuyaDsO544vcsbdNC0xtq88jfUlLzqOKMx5xoutccEBjpl9aciMfek4o/ebexKVP2sAN5eZwqHFjYiLyxXH9lv82aVRoTw9keG5yYdHGdPjFpolhOCgoGXDhwkMslL5nGqQo2nPSP9A1nFTx9/6IlG7+2RDTepA2reXOPQL5TRbxjZEEIoAMdDZW0zvrUuBiA7HhX77bYMTwLI7jAHl9MGy6cXe1gPGCUU1wZ1+/A0BB4HgNZojdq3rOOO+r+jJAWNU4pBZ5g3kRKZPVJT8vAG0740Vj4DfdtBPX8PujuL8pjH5fipKRKGRT1QdUIGFo4PrCwWP9IPNDacgr3zPKOPZwamNEfgufNmWqdlrqEoFG1hTzSueUX4ycRZgi4iyOdBc5F7cTIlkx1f1kk+C6FQ8c6Ixpv2p9G/97TQphNt+dN+BlCZKa3nHa449not36RHnolUskmnpHajJgKwGEk8uaS4KEH IAz2KMiD ArEIK2L2OEdbIACPjtJ541lXzmmgfnqHjO7jJ34kE2vECyA/5rjE+vmahPPPeDCouqhzn6vE+zErZvpIx/heJMaLz7UThtjqY5+AGLn+pEB/qhgWl5QLugS8a/1Q0s0O4rkUkgZT2D+tSF6wtDzCFVVwR2TWfQPmC9ktMM24tfT9bDn1mbZ9/yYwDNmHBgRRfj0+hnLonYddTs3z5SiH9UZfRrTH/gNdx1MaLwLhKOCQbRwcX1SIDEo5j+AOYjsYRkR4gba3jqvksXGDOePzY0UDMBs6xHiBlZaAyeCZuT1CUffw8M/dFHywIDf9paD4piKcfjkGjeDIsJJbFu4PEE9qjsyAOww7tLZoxieqpqeSvv6Z8zkeoOG7SjqvmYqaGY0aZe/EnGd9Xg/dfBNwF3xfA34Dz8uvLoMaW 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 Wed, 5 Mar 2025, Zi Yan wrote: > On 4 Mar 2025, at 6:49, Hugh Dickins wrote: > > > > I think (might be wrong, I'm in a rush) my mods are all to this > > "add two new (not yet used) functions for folio_split()" patch: > > please merge them in if you agree. > > > > 1. From source inspection, it looks like a folio_set_order() was missed. > > Actually no. folio_set_order(folio, new_order) is called multiple times > in the for loop above. It is duplicated but not missing. I was about to disagree with you, when at last I saw that, yes, it is doing that on "folio" at the time of setting up "new_folio". That is confusing: in all other respects, that loop is reading folio to set up new_folio. Do you have a reason for doing it there? The transient "nested folio" situation is anomalous either way. I'd certainly prefer it to be done at the point where you ClearPageCompound when !new_order; but if you think there's an issue with racing isolate_migratepages_block() or something like that, which your current placement handles better, then please add a line of comment both where you do it and where I expected to find it - thanks. (Historically, there was quite a lot of difficulty in getting the order of events in __split_huge_page_tail() to be safe: I wonder whether we shall see a crop of new weird bugs from these changes. I note that your loops advance forwards, whereas the old ones went backwards: but I don't have anything to say you're wrong. I think it's mainly a matter of how the first tail or two gets handled: which might be why you want to folio_set_order(folio, new_order) at the earliest opportunity.) > > > > > 2. Why is swapcache only checked when folio_test_anon? I can see that > > you've just copied that over from the old __split_huge_page(), but > > it seems wrong to me here and there - I guess a relic from before > > shmem could swap out a huge page. > > Yes, it is a relic, but it is still right before I change another relic > in __folio_split() or split_huge_page_to_list_to_order() from mainline, > if (!mapping) { ret = -EBUSY; goto out; }. It excludes the shmem in swap > cache case. I probably will leave it as is in my next folio_split() version > to avoid adding more potential bugs, but will come back later in another > patch. I agree. The "Truncated ?" check. Good. But I do prefer that you use that part of my patch, referring to mapping and swap_cache instead of anon, rather than rely on that accident of what's done at the higher level. Thanks, Hugh