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 251E5C001DF for ; Wed, 2 Aug 2023 12:22:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75FFC280166; Wed, 2 Aug 2023 08:22:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7105E280143; Wed, 2 Aug 2023 08:22:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5FF77280166; Wed, 2 Aug 2023 08:22:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4BA7F280143 for ; Wed, 2 Aug 2023 08:22:04 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id DBE5F1A0DB6 for ; Wed, 2 Aug 2023 12:22:03 +0000 (UTC) X-FDA: 81079076526.24.CAD7F62 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf27.hostedemail.com (Postfix) with ESMTP id B007840011 for ; Wed, 2 Aug 2023 12:21:59 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=gEMB8KpM; dmarc=none; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690978921; 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=QCOWbNxTPoEqKAFwIDBh0pTUiwLMUpnUoYaj0aoYiOs=; b=jlSnUgIM01U6MguWoGaIufixDdDkVmxrDuSBBeLmz+VuzsvmZpytkle38Em20onfrJ5OcJ 7h3QsXjb2l3iME5DVG4+2Cj98Fv0Niyhip24H825J1Sb82ohgBDxz6QqfJ8BreHxlrhxKp jnYX27ps0cRft6exicDcsXesucU0s5M= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=gEMB8KpM; dmarc=none; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690978921; a=rsa-sha256; cv=none; b=3tIJxnB1T/ZKHCPKcvmjXA/l+Wnt3qSqAfDcWAvqb4SpYWJvxOP4nrLDdqB34CSpVUp2cZ E1qEwDsNAK1WL6nbWoLe2T1gznmdExJnJz/5pEaUZ6VuIRzkrg8zIYBs0ox4rC3mZ3tYBE 9M9tqyGQ8lYxyJteEn3cg7T8b9OmvTg= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=QCOWbNxTPoEqKAFwIDBh0pTUiwLMUpnUoYaj0aoYiOs=; b=gEMB8KpMav/+K8RKzJMV2gvzzj S129f7+76wuz/c48ZqHCwhPtuX+BjWS1l56V9zoXKaGOLEB6PMrBUr64nNAJMkn+e2ta1PhFrr0tp 63ZCuGMaYHfbRJ8zJ1EUv8KgPGuTy6x2C1rvviydJiPcYJbN2u3YRQ5nw1fRIqUty4t59q9egJAfJ sPB1TM4+VmNAjDBg+HjrnQciPJCX6AjVqhUFTxqAfcCPisxFKG3C+YevzI5aPUaTZ/MgpzFQ7shis F6weO/Df8hKtSQt4QllXdrHMipCo1deR/FjAn0DByGS0HnegiVb4DPZR1WcQ+IsWhvmciH85qMZJ3 7TYiVakQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qRArR-00EvaZ-VE; Wed, 02 Aug 2023 12:21:53 +0000 Date: Wed, 2 Aug 2023 13:21:53 +0100 From: Matthew Wilcox To: Kefeng Wang Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Huang Ying , David Hildenbrand Subject: Re: [PATCH 1/4] mm: migrate: use a folio in add_page_for_migration() Message-ID: References: <20230802095346.87449-1-wangkefeng.wang@huawei.com> <20230802095346.87449-2-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230802095346.87449-2-wangkefeng.wang@huawei.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B007840011 X-Stat-Signature: 8das1ft591zmxizwec1zw1ifyi5atnds X-HE-Tag: 1690978919-274189 X-HE-Meta: U2FsdGVkX1+MTaVcEFmfX3lodVUi5i5EAL9Cp7yu+yg9P398WsyR0QroenDhGQZlQdBSXT/BK4smJ5FCBx+ExV/yIfrLWS3H+Icja/JWRrzsSsEfNIvoH0sqJ5cX5PsCSaQm1T9mBV93Kwsk+11gxnnJMfk3u3ZVYBJ68Vb2SFDCxCgbvl/MbmyhGM3s426PE609DcUWavuxgyzgCerILls8gklG+oOj/nJShWlY8IK4F/vZHTMlTFRznROB9GHxIq7MSB4fAacDkK2xfBSI1GZHfRL1D2ALVsHgddej2zPJgM0FtDPZndC+rRKyQpcBYR8gJyt7ddglos9iRNFW2pZ4PBxHuR95r+qE+K0LzXbpAr94EFazmb3cTkA/8bauAkAtWb9RUYB3tf73FHZcXeZvUjaO5HKgEWfR13nOf32qwMHr6bKybIxO0+b6sApQFVndpe0oYAE9POZ6i8gnCuSBl+DFbIkiSjolDs/GQfqgMF8bTnnEuC0i93GW3k2kxo6CO15gKpe3WkmOq2IwVO6gDGZZ0EsmKeMMG4BdC59hHLoUTkr9agHPRSwXAjD4m5PXhEmqZnhmSmlLZCcyZmK7YNJXHeYOZRtUq2dh8hINtuusv2Xk23UY7zqYfY4RpyGsNUiXngtMAjL1n/Ysx5n6AHf4vgS+uFIpou3lbWKdR7BFh3LJuAWYKMEGk4zhAaF8uRVmx/QRYPFVgOdc17IQFLFH6tvqbatcV8C5UlNO8LSxCHGk4FOikKhssxVfE4AmAZwHWWAVbNDt5F82JofoHRiaATJe+AwHUFvsUsYMsqJNzij5W+4yLSqfD28zoJMunBuNHlUH6x3r61zVHXOft6qfJEt/l8prrKomDEsqREVaItf5xvz59Jf5QTMfVo+KOeHj0oAE3vXbMekqbjFQWlhEZbjxbFhNDgnQw9Jt+ayjg4eQIkpMZ21OlTusHQareJiN+Xywco1d+8J PxrJFXnK QbMBG0O9r5F8J9wvaMzd5grlSLt/yZT3u2IRyYscJpmxCMThyXpHDSLN5DYcnc0pKPrAsFsAJGmk9+FLBzgWNOJhwEY1zTUKxpRI5EGXLIWZR+yU6TFh2fyZoB25q6q7AHwOjWsJpOFwucVn6ALTIB1wXBlf0o88qydt0JjJInS5cnqcslRsHcRqtyw== 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 Wed, Aug 02, 2023 at 05:53:43PM +0800, Kefeng Wang wrote: > err = -EACCES; > - if (page_mapcount(page) > 1 && !migrate_all) > - goto out_putpage; > + if (folio_estimated_sharers(folio) > 1 && !migrate_all) > + goto out_putfolio; I do not think this is the correct change. Maybe leave this line alone. > - if (PageHuge(page)) { > - if (PageHead(page)) { > - isolated = isolate_hugetlb(page_folio(page), pagelist); > + if (folio_test_hugetlb(folio)) { > + if (folio_test_large(folio)) { This makes no sense when you read it. All hugetlb folios are large, by definition. Think about what this code used to do, and what it should be changed to. > + isolated = isolate_hugetlb(folio, pagelist); > err = isolated ? 1 : -EBUSY; > } > } else { > - struct page *head; > - > - head = compound_head(page); > - isolated = isolate_lru_page(head); > + isolated = folio_isolate_lru(folio); > if (!isolated) { > err = -EBUSY; > - goto out_putpage; > + goto out_putfolio; > } > > err = 1; > - list_add_tail(&head->lru, pagelist); > - mod_node_page_state(page_pgdat(head), > - NR_ISOLATED_ANON + page_is_file_lru(head), > - thp_nr_pages(head)); > + list_add_tail(&folio->lru, pagelist); > + node_stat_mod_folio(folio, > + NR_ISOLATED_ANON + folio_is_file_lru(folio), > + folio_nr_pages(folio)); > }