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 A5462C7EE43 for ; Tue, 13 Jun 2023 01:53:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BECAE8E0003; Mon, 12 Jun 2023 21:53:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B9CC98E0002; Mon, 12 Jun 2023 21:53:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A64A28E0003; Mon, 12 Jun 2023 21:53:14 -0400 (EDT) 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 961A58E0002 for ; Mon, 12 Jun 2023 21:53:14 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 54CF7A0366 for ; Tue, 13 Jun 2023 01:53:14 +0000 (UTC) X-FDA: 80896051908.14.65B8030 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf13.hostedemail.com (Postfix) with ESMTP id D89C920015 for ; Tue, 13 Jun 2023 01:53:10 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686621191; 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; bh=T8hiqc33k74I8IOoT0NeZkKnHUHeYF7RXjqLWrqMm7Q=; b=S3zPhiRk1AV9cVh3LKMRXvbd6soXx3kM7TU96qKM9D6p2HU0WRLW2JQC6pdJBAaGcLWiro ETwvNI8XDmKiSH+ZO+ZrpRD7uW3eCU+00+VpLZ5TbDZyljbHoYGNNbiOnfjgXvnxBxQZFQ 9RZxz/3gbwSgJesY8e7m9cwT3sSZJ/0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686621191; a=rsa-sha256; cv=none; b=TY35SxmL8S5iwPIcoboGmBFEPgvg4mVWNsdMYVeV87viz8EvHQbwsjr4pF2HRsJgEpz1Tw Gsn71hBtJ6uuKwZxgJG6wdcC+2qljsf3ydnV9KY6iKQagFYg+a5qUKCeuT9z9OIPab6YWd m1/Re8IParqX7urYX67+3Y4wvuVBouw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from dggpemm500001.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4QgBQC0R56zTlNd; Tue, 13 Jun 2023 09:52:35 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 13 Jun 2023 09:53:03 +0800 Message-ID: <99dabd49-16c7-2858-e502-1bb390e13859@huawei.com> Date: Tue, 13 Jun 2023 09:53:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: Re: [PATCH -next 1/2] mm: compaction: convert to use a folio in isolate_migratepages_block() Content-Language: en-US To: Matthew Wilcox CC: , , , , References: <20230612143414.186389-1-wangkefeng.wang@huawei.com> From: Kefeng Wang In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected X-Stat-Signature: uwf4opfhw311gs8t3ztrd684mo3pmiiw X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: D89C920015 X-Rspam-User: X-HE-Tag: 1686621190-639739 X-HE-Meta: U2FsdGVkX1+vDRlI5E+d//Jq9bq0rEIPIamFQ6o4nlppSJz5TeQ1x33B1aPIOuj8fBN9DUbF5nYyVUN/TJGqveTwAxpPEmZa72FyFDe37dMsWI59lSLWGo5Z67fnGZevqo1qVNdrugBj7Nuk2pdAwhBTmUVJwVCQrW0sm3tS7zZnhY0VQJapSO+WrO8V/NPZhBEYHq13/lciN+curWA1Vwyff4IYSUGuHCeEkRRKGIh6Qs5Chn2bh1jLfAJOSTNAJGBCDAfEx9qZ4f0OfZ23lR19YNSvwQ1BoAPSF4w77fbgcWU1xYQgpS5U4J5XtLg5SfOmQXhKMZbXFWcUAx3hpHwd53pn09lKsDSq2AqJYUZxHXlGvQ+MnTQnXDe1yHb5o7+IGkug844uuiDsbBtF/UaiSOuExccFAGR+4IIwWGy61lgSyA/t8NI/h3iMoelf8vpXlZ4MVcZsqtIRUWho6LfZ89mRrrlKQdCkl92+W+K2npRVjTxYK8HwFbp8aZs9v8VUrogIHAukz2P6N1VHTXD9MUSM8PSJTibFdwwf7P3NmvnkdWlzVrTLLXkW2F+YgK0PSRfpgwTeeEKszJfATXaGrfdNc0SaHEZkyf/OBOeKhYl0EEllG+33v4jQZwtmPCoFfG4upil9G7mg5/kaIyEcMkeJ53umRie+mh3MhEHi4YToGyPX88mVo+vUCqJFdTRqlWmOworh/GPSprwBsZEL1XzN+RxkD7Yebblp5X+tgU1sanlW+z9GlLz132PpIk9FMCBFdFQ31AELgPY2MAElOeTtR1qyr3vxALwUjNASMR/EUPaOWZa21EoHOtveFwySq9MN+/hyJ7WxduUddnZ/dd+bSlS9fRzJlPl4SErPMG3ACjzwL8oKq1oQe+9C6t4DyxRmmsRt/i6GBSZq15G3LglNLeRlDx4+u52diXeaTHNe7YAxtOS20hOz6MOdg8uzPfwwwAIe6Fy10kY XS6RSoLW /GhlW/kMrmWfM/cpfJkUD2VEZiGdgSk45n20vqViUlaDy4hkeVxBib2PUrYjy/SRo5md/g4f46V+Tg9c0xMxuUW5KmRLlhZ916czuJQ483iGh6Y9FyAIOfsgM18TXguzcfLs3SCLmKnifoZ1XR1NEKbIIupYuRFMAEUmUjw19oZMZPF/VNKmmlv6APw== 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 2023/6/12 22:41, Matthew Wilcox wrote: > On Mon, Jun 12, 2023 at 10:34:13PM +0800, Kefeng Wang wrote: >> @@ -959,7 +960,8 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, >> * Hugepage was successfully isolated and placed >> * on the cc->migratepages list. >> */ >> - low_pfn += compound_nr(page) - 1; >> + folio = page_folio(page); >> + low_pfn += folio_nr_pages(folio) - 1; >> goto isolate_success_no_list; > > Why is this safe? That is, how do we know that the folio can't be > dissolved under us at this point, then reallocated and hit the > VM_BUG_ON_PGFLAGS(PageTail(page), page) in folio_flags() when we > test folio_test_large()? This is successfully isolated path, after isolate_hugetlb(), the folio reference is incremented, so I think the folio can't be dissolved here, correct me if I am wrong. > >> @@ -1132,30 +1137,30 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, >> * and it's on LRU. It can only be a THP so the order >> * is safe to read and it's 0 for tail pages. >> */ > > ^^^ This comment needs to be updated too. will update > >> - mod_node_page_state(page_pgdat(page), >> - NR_ISOLATED_ANON + page_is_file_lru(page), >> - thp_nr_pages(page)); >> + lruvec_del_folio(lruvec, folio); >> + mod_node_page_state(folio_pgdat(folio), >> + NR_ISOLATED_ANON + folio_is_file_lru(folio), >> + folio_nr_pages(folio)); > > node_stat_mod_folio() > ok Thanks >