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 A2C68C83F15 for ; Tue, 29 Aug 2023 02:10:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 097148E001F; Mon, 28 Aug 2023 22:10:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 046D28E001E; Mon, 28 Aug 2023 22:10:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E513D8E001F; Mon, 28 Aug 2023 22:10:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D26218E001E for ; Mon, 28 Aug 2023 22:10:33 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 85571140758 for ; Tue, 29 Aug 2023 02:10:33 +0000 (UTC) X-FDA: 81175513146.21.0EFF45B Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf15.hostedemail.com (Postfix) with ESMTP id 02650A0022 for ; Tue, 29 Aug 2023 02:10:28 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uxdF6MdA; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693275031; 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=YvhsnVnVxkF2DtUubelTRgfBv4rbhb89904sdEuy7sk=; b=qW6z6wy/CS9LVKgu3UeDbteTa8+aFy6WMfwzwgpC/A1zQsXjvyaWUSAAMffIRbFD8TOm5L bbwG9gajWYXIZQ4Lym4CzJGyjLCM1VETsfRLovI0Wu48SoVsLpCxWvHkB8Ht7xJIMdQQjp 3PPEWFdLnvKTp4Bq80S5x4oH0pT6OVs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693275031; a=rsa-sha256; cv=none; b=fKdwzioVDbAlSMcjnrroeKgtUVGpD+qHA8ePdziVs54DEgekDkftuBfIYjR4IceJINgQHP tzgAOX6+DQf+EGKV8sPcBrXufxw9rO2xOn1pr/uqbEab70f1i9T0mCzJEy0yTfXn862hiC sXre+x+pHVAastg50bvrLEW0FH7NKEo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uxdF6MdA; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none 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=YvhsnVnVxkF2DtUubelTRgfBv4rbhb89904sdEuy7sk=; b=uxdF6MdA7wLXYedSPOWY+YbDhM +Avn3bMr5ULWE8BV84XSJA4sS4DsveH1W/phBOQZpnkPM42oFHJJ2XYfWsBkPRljJ1/Ecbn8I9xHd O4FJauVOVKFBMIU/FdEoG6zicEsNkXqoUveZaGD4XnuLPp3XVe8+jmta7dyGpeNIrnVMKPdQh2Fxh ujKT9Nxvzwqjs8PYJ9R9PMwESGz1wV1ttYLFwCwL7Teorm61wXkX/qDbusvSv8nG8Fk+6IMi/nnTK 3Q3jmpICRbydfsfE45ILW0QW6noJ+CYKVVhBYQeZzQntBB/jdMq6bI/z7rLsEEUbm/ga+3KpHuj9O MJNCTPNg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qaoBF-003qIo-5g; Tue, 29 Aug 2023 02:10:09 +0000 Date: Tue, 29 Aug 2023 03:10:09 +0100 From: Matthew Wilcox To: "Huang, Ying" Cc: Zi Yan , Kefeng Wang , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, david@redhat.com, Mike Kravetz , hughd@google.com Subject: Re: [PATCH v2 4/8] mm: migrate: use a folio in migrate_misplaced_page() Message-ID: References: <20230821115624.158759-1-wangkefeng.wang@huawei.com> <20230821115624.158759-5-wangkefeng.wang@huawei.com> <855536BE-766C-49B2-B358-6C0548760929@nvidia.com> <875y4y65b8.fsf@yhuang6-desk2.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <875y4y65b8.fsf@yhuang6-desk2.ccr.corp.intel.com> X-Rspamd-Queue-Id: 02650A0022 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: h6sp3m7esui98wm5pbhr1qpbxxhrhigo X-HE-Tag: 1693275028-30155 X-HE-Meta: U2FsdGVkX1/unCykUmEk2VSpyc+ZnsCmx/41NovzSifFiRmcmZEplgC4NrIYWQFNdibo+1p4mBdvXJcgVB2wlOMzkmMVBVCwTk2qhaoRC6Yy17kBGZ7JUf/aS+h8Y8koJ+p9TfHfmJkABT1IMuiKOwM1qA9StJVqHKxM4QvmbSStMoTqnNbUYJYji72+0YAhGpH+GxcVRjAM1aDl/NJs9UJe1FglqktOK4XnSUmPB82+AVX8ZjBkFvtHIKoDOMTrHIzrHPU0R09+cyLSQksMQOXR1KPSSkb42tUzgiKC90blC+kvGDi1jVAKUHVWxp4eqh6XBmqWluasBsyqYpQziv6BZnT4wNFk+gaIkxv7OHevAhLKUKX8Lui/A23kvD2tHC5YErjFnDCjtFJ8i1JYtznQHPL4Z9nQhBcH/s6uDhtFwjt+wAf4pGvGIXby6uV7J0Nkv2iZUvrpsVgO4QKlAVjllMO5JlH9EIOlFxH+bSBY1KERV+H+04y9i3Ea1cT5vniSP8AgKMdbn+3LVTpjhU7wkIUYtvrKg3P6gwZZ1dI7WV+CMZxdyAb7eB2OfNvC9YXciaNrDxaF6ehFALb2FQiIlFVqa+JewvVwXtPJScEcwJG+bZMdpq4SwvpvaZDD0VQ+9TVTyfCLSqG7N/PXZypwifG+dZzy1qFERxJK0r4jJFUJfuf1AJo42tqBU1OE8Iu89juaNC9Fvh+7aHqKdrhBIzY2DgA8n/UVw3kXFkRP13h+rC3Ug8J0RWx2zxM9Grb6D/ZIKnlDzHWmIto8IYSYBJdjaiGfUwxv2U58KMdPolZalAJLZonJklzG1qlJHXo0Ork78/RnuiEH1jize3b3sD49Q1/ItC+zatDLFaUBWjJvJ0hVQzecfLae9cLbw4ZJHq2IWwARRE9VHvGntqaYuYTmEBd+yxhZdfbrQNYWo3jX0RDDqQRluD0/J9lzQ3GdSpY9kdWj7Raj/R1 ZSpFmErQ tTkRDATyDu/ShRLuun8PmneJd/a+RiM0Vg/hgfmSMRCsXDrZAh7NLVjqOtaN9NO5fFb1szwHk5Pj45qRLWHXwRJqKEzUjSpLEJHEh4NmfCdqDK8jZ6U44Ypsyr5N9ZRJ7cvEbvo/mGhqL3MMKFT2N/0aOjQt41W7JZ//2xGnVJXt42pwEzXCTjmGHHvQDLmCGko4fRmqZ0L4oo0MxctFXb3fBTkIMoMMQno5a 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 Tue, Aug 29, 2023 at 08:49:31AM +0800, Huang, Ying wrote: > Zi Yan writes: > > > On 21 Aug 2023, at 7:56, Kefeng Wang wrote: > > > >> Use a folio in migrate_misplaced_page() to save compound_head() calls. > >> > >> Signed-off-by: Kefeng Wang > >> --- > >> mm/migrate.c | 23 ++++++++++++----------- > >> 1 file changed, 12 insertions(+), 11 deletions(-) > > > > LGTM. And a comment below. Reveiwed-by: Zi Yan > > > >> > >> diff --git a/mm/migrate.c b/mm/migrate.c > >> index 281eafdf8e63..fc728f9a383f 100644 > >> --- a/mm/migrate.c > >> +++ b/mm/migrate.c > >> @@ -2521,17 +2521,18 @@ int migrate_misplaced_page(struct page *page, struct vm_area_struct *vma, > >> int node) > >> { > >> pg_data_t *pgdat = NODE_DATA(node); > >> + struct folio *folio = page_folio(page); > >> int isolated; > >> int nr_remaining; > >> unsigned int nr_succeeded; > >> LIST_HEAD(migratepages); > >> - int nr_pages = thp_nr_pages(page); > >> + int nr_pages = folio_nr_pages(folio); > >> > >> /* > >> * Don't migrate file pages that are mapped in multiple processes > >> * with execute permissions as they are probably shared libraries. > >> */ > >> - if (page_mapcount(page) != 1 && page_is_file_lru(page) && > >> + if (page_mapcount(page) != 1 && folio_is_file_lru(folio) && > > > > page_mapcount() is not converted, since folio_mapcount() is not equivalent > > to page_mapcount(). It can be converted and this function can be converted > > to migrate_misplaced_folio() once we have something like folio_num_sharers(). > > It seems that we can use folio_estimated_sharers() here. So, funny thing, page_mapcount() was always wrong here. We have two callers, do_huge_pmd_numa_page() and do_numa_page(). do_numa_page() has a check for PageCompound() (and /* TODO: handle PTE-mapped THP */). do_huge_pmd_numa_page() returns pfn_to_page(), after it got the pfn fromm pmd_pfn(pmd). That makes folio_estimated_sharers() an improvement, possibly even a bugfix. Also, we should look at removing the PageCompound() check in do_numa_page().