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 CA640C54E60 for ; Mon, 18 Mar 2024 01:45:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 39B576B0085; Sun, 17 Mar 2024 21:45:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 324D76B0087; Sun, 17 Mar 2024 21:45:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C4EA6B0088; Sun, 17 Mar 2024 21:45:45 -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 06E2C6B0085 for ; Sun, 17 Mar 2024 21:45:45 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A5534C0B46 for ; Mon, 18 Mar 2024 01:45:44 +0000 (UTC) X-FDA: 81908468208.15.E168B2F Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by imf07.hostedemail.com (Postfix) with ESMTP id B6F1240014 for ; Mon, 18 Mar 2024 01:45:41 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf07.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710726342; 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=2yf1ttAkqPbt29QuCNaKNRuca7K8PT3K9YZRmLMwEAw=; b=bPqwhZx12G2cBOLX7g4m21qaEKbvDJz+X22ajqFg1HbQgimv5r8qMeCn0mCJAQrRcKsZyF ipK95cXShTQh0+ApE6j9oBL+6bamk1fHZMlpuEOvVrA5sn1WF7xEbV3O2U+4LDHOHkPuYT m8aSq1g2vcgjgpEkshSt63cBGtyrbMA= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf07.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710726342; a=rsa-sha256; cv=none; b=3pqb2VAp+lWwxH8JxfQypI+373mlo97ckp/fSgsov/mD3vuQDk1fXKznU+RV9i+QDv1Rio vX5EgZB1nq2fLco0j/1WkXwhCdTiUSiOapNK0eVbzZqSWp5+CdlQR5C45kLLyndEnUGNxn BGvch2S5mzIyWzPiqIJWH71+Wmd58CE= Received: from mail.maildlp.com (unknown [172.19.162.112]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4Tyd0V074hz1h2hG; Mon, 18 Mar 2024 09:43:06 +0800 (CST) Received: from canpemm500002.china.huawei.com (unknown [7.192.104.244]) by mail.maildlp.com (Postfix) with ESMTPS id 2B1C7140153; Mon, 18 Mar 2024 09:45:37 +0800 (CST) Received: from [10.173.135.154] (10.173.135.154) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Mon, 18 Mar 2024 09:45:36 +0800 Subject: Re: [PATCH 1/2] mm: Turn folio_test_hugetlb into a PageType To: Matthew Wilcox CC: Andrew Morton , , Oscar Salvador , David Hildenbrand References: <20240314012506.1600378-1-willy@infradead.org> <20240314012506.1600378-2-willy@infradead.org> From: Miaohe Lin Message-ID: <0afa6285-88ab-1f5c-c253-fe902b95e7e0@huawei.com> Date: Mon, 18 Mar 2024 09:45:36 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.173.135.154] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To canpemm500002.china.huawei.com (7.192.104.244) X-Rspamd-Queue-Id: B6F1240014 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: hkeayigppyxgiehw8mh4f3k39f78hb5e X-HE-Tag: 1710726341-760715 X-HE-Meta: U2FsdGVkX1/7fov0CrC3Rj9G4/9zTZiLU497tL+NAJZ1tQTmBcNGcTdeNCNanwgsMd+3dSAAimlWfW/I56/Z1tR9bvgrH3ildLZObJPZMcyjdwRSLxDUIES+ldEYWau6kmsNOjBj8ENwag2pYY/FHCq6+mFpEdNybD02vWZ0N9mbisN5mlDv71AEpNF9I5fJpn3AIS08T7a5WSL9swiFqyGdZYkPAUNFZ3lS0BGqSSVTQ0lz9VsRuM1bzQnYFF9Zg0ZixpApxN2clsjmfhz+unfTecb791+GE/1kuyiJfhe3a0LhRUcK3W+L2E4tSUemCs371ZlRhJNPLHtXKvKocLUdAju3Gd+Q7q03H2P6BOqsME2qkWyKiNpBFs92PbK4VIUdbbizYc/NQdQlIejVOuv0Oqj5qg1+FhA8pejYsT8Y1HtECyw/Rmu8dGmGhUPlSc1a31hIs0MWBkhVe7Y4CLBP+UBSFNqmnjNHezcCUewb3XijEKd+NfcyHMx1ui4fbAu/7TN6hCqjAVZmExaClYFazET23lucIg5novtIRly+0P/HTwaZ7CRCbnNIrsYLnrXoehcWQel+a0/ppwx2d+rtjIxv7ANjIBKLmPwJ4sXcLPfWLcDFQ6wzjgfLs7Aa9hHZMyAAjyiMcLu5HPOvavVBzbEtg9yPYzDG9Wct1dA98wD9qJmFHsVhl5aGxO7ioi9hl/ZYTbaIP+QMmZJ79oY+YIaI1qTFM9P53eI+C0Ubw5MNBZixE0xeCvgMuVhgjMxHG/x7AIn0ydMLDp5wUWRLCinGj9wacgOW6B0na1ji7nOSJiXrQgnQbGR9FvxIvnct61e0NazdBYf6MyFdryi5ZgZTm1cUrKKKzjtKYieVadTg8lKhyqOJiiuIpQn3G6tOUnWWbIv3kRQC3MpraXimi4xztmWx3tW3+ZV6urHnN3QI3wMh2WIVWXBK7zFHWeS0zkcP03naM+o1AKj 5Y8ALaxi FZ6U9r+FAp7kmlfHgStXt3gqc/KUOB5Eoq/P+z91pSdzU2Sovoqq7oQCcYoYj4cWYt3QqRmOwo+i0ovho8lGw/f92NyPcZBXQn+V56RfSPkfUMKQ0zM9MAjlGo5NzZtWgdNaoYuodnH8cjc69f7x/qjQ97b/qRqbN84WxM/Btd1F33zE= 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 2024/3/15 20:32, Matthew Wilcox wrote: > On Fri, Mar 15, 2024 at 02:19:10PM +0800, Miaohe Lin wrote: >> On 2024/3/14 22:33, Matthew Wilcox wrote: >>> I actually want to do a bit more here ... >>> >>> +++ b/mm/debug.c >>> @@ -58,15 +58,10 @@ static void __dump_folio(struct folio *folio, struct page *page, >>> int mapcount = 0; >>> char *type = ""; >>> >>> - /* >>> - * page->_mapcount space in struct page is used by slab pages to >>> - * encode own info, and we must avoid calling page_folio() again. >>> - */ >>> - if (!folio_test_slab(folio)) { >>> + if (!page_has_type(page)) { >>> mapcount = atomic_read(&page->_mapcount) + 1; >>> - if (folio_test_large(folio)) >>> - mapcount += folio_entire_mapcount(folio); >>> - } >>> + if (folio_test_large(folio)) >>> + mapcount += folio_entire_mapcount(folio); >> >> Why folio_test_large is not within the "if (!page_has_type(page))" block? I think a slab page could also be large folio. >> Or am I miss something? > > Slab pages don't use the first tail page so folio_entire_mapcount will > be 0 for them. And we don't want the folio_test_large() to be gated by > page_has_type() because hugetlb pages (after this patch) will be in the > page_has_type() category. So for hugetlb pages, we want to not read > page->mapcount (leaving mapcount at zero), but we do want to read the > entire_mapcount. I see. Many thanks for your explanation. This might worth a comment to avoid future confusion. Thanks.