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 555FCC3DA7D for ; Thu, 5 Jan 2023 07:32:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1E5A8E0002; Thu, 5 Jan 2023 02:32:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ACE398E0001; Thu, 5 Jan 2023 02:32:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9963F8E0002; Thu, 5 Jan 2023 02:32:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 86B128E0001 for ; Thu, 5 Jan 2023 02:32:06 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4CA1FAB1EF for ; Thu, 5 Jan 2023 07:32:06 +0000 (UTC) X-FDA: 80319926652.07.CD00F54 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by imf30.hostedemail.com (Postfix) with ESMTP id 0E37B8000F for ; Thu, 5 Jan 2023 07:32:03 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZnIYUuFR; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf30.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672903924; 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=9MaBBo8xvEAxIfMh+DxUA4oeL+AKU3qvK+JnCLliEGo=; b=6RYxeiUPKhB7BDA8VoY788tZ9NNaQ/ue8nRbG+5J4TxfclAd/EPx2q1cQF6Xr1xG+rk/0Y dEvbLkQGGnYwp/3uteQp6d64QJd2kVInjq+WCe7L1fV0GxcOWA75qFFuNJecEhSGUZzxtj uInyfk7JPYBqTTmc/+PxE97zvotxRCE= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZnIYUuFR; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf30.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672903924; a=rsa-sha256; cv=none; b=XSTF7iOgrn9GI9DXmWsZ3yt3noz8B1MiObakcfrhK2NbwA0OvArKsf8DGanjavO2iq0Z08 U4Ybpux8SOv8BAAleHls0mKxz4/+VqjqHQS31I5PUYq6cfVW3UQnXq1ZzZw4w8BKPR4PRF ZM4SgdCjBli9b9PYcI0RuCd7SWzNeco= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672903924; x=1704439924; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=ypUCWeLyZTiSpVtwCmCkkmx5F06n0mwIxits+2J+LcA=; b=ZnIYUuFR82VC/xqsBqiKNh5usa1bLwwu+Nk1EeXopwSucvM0TOtT2DEi HkquUVwuZWPx5iJk/4CdG8nPXwdmiqDs58PNBC9coZs8KYRhTBD3VNgEB fsZjsAOTATLCNmbpugPj4+TMDnFvlZNRq2BIMmk/mw2pVvVenENYmpG4E JLkH/MI1jf99E3fKLinmvgKs2zTekJgmh6eqq+lrqm7zuFn9bO4OQ9HTC snumwmNEgXRVfsgunYlu3/Trn8VvuNxvJ+w5HCa9LUmllPfZML+sksqdk kbtykcWpMRA5NydsB7Z1FUcmeMeOjtRn/oV3CR2e8RJviYgOPQN2Z4Y7I g==; X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="384432194" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="384432194" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2023 23:32:00 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="984191588" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="984191588" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2023 23:31:57 -0800 From: "Huang, Ying" To: Alistair Popple Cc: Andrew Morton , , , Zi Yan , Yang Shi , Baolin Wang , "Oscar Salvador" , Matthew Wilcox , "Bharata B Rao" , haoxin Subject: Re: [PATCH 2/8] migrate_pages: separate hugetlb folios migration References: <20221227002859.27740-1-ying.huang@intel.com> <20221227002859.27740-3-ying.huang@intel.com> <87pmbttxmj.fsf@nvidia.com> <87pmbtedfp.fsf@yhuang6-desk2.ccr.corp.intel.com> <877cy1scg5.fsf@nvidia.com> Date: Thu, 05 Jan 2023 15:31:04 +0800 In-Reply-To: <877cy1scg5.fsf@nvidia.com> (Alistair Popple's message of "Thu, 05 Jan 2023 17:43:05 +1100") Message-ID: <87k021bfpj.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: 0E37B8000F X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: wcsh6cdjrjizo1t5c637n7sfmfogmsuf X-HE-Tag: 1672903923-794421 X-HE-Meta: U2FsdGVkX19mBTQJQdo4/ZxCXcqkbBgfQgXA0xRGYJQVgJ1bvYidvBVIUcQavjcRI6rqWxqbTcbe5bFThkSIsYLeFslFRz+w2YIzHI7+iX4EzsTcGbbRlciRNuVCy61yzuY8/hLGingic2bpJ+/md4fQP9jtnAcq3Af+Uq0378ii44CT8g95EYcr59DhdQIrwrAE/9vunTDKKjbU8YWwJmH5cksymbj2c7MCBSlZM2QfH3kMK7LCh+74MmC/HSvTIfeDUFx1IBRXN7vUPNCkMzq+vl+g1I6xlaJwrddx6vc3Gn5cPk9dfZ0QbCb/cabBcLbPk8rh2Bdtyo0ESWKtTz1C7DP7YtDpz0IDggzQrFl6xEgg7i7uOMLgI3b2Kp8emYeB+6iTuChrSdqwpLvOZECDIkuT7YVPEtrl5yDMcUpGc5Bmw5CzfoSNJUBuJ3fMf4jDqvl47ULpRF6Yt3+0fM3CyHihh4AZmsOHgfqIEej45rs+i2rTXqLnm9AEvNBgBF4W553rIsapLnJ9n4tnTUR86oVhWfLZ/Gr7zxnBk1sdbWV9GG8g1NMaKMH3N9ujmvyrIirYUlyyOfBqcTMRJE0pZztOIFo/4uid8xo0wFOyKm/ST3vBVz6+crTnqcCuEXgb1tS10uMeHxPoyC5e5+d5pI88DcjMM/pDFsPeX1Yo91LXafDOW3h0ViC8VjbXT+HMn/FN30hqtvhrLwl9hn4o7KREg69t6TO7X122yUYHbQdXyzORZaBuaVQUZi32bBqffdH52OnNMejoIpVR/rjZxvP+0Bl5SM/B9J+WvQCZ/drlT2x6H9kutvlasP+fdMAQS9DKL2Ah/DE2MOjzRV8caC+tJtJIe/8j/Z10Vn6O858Synnkmdrids0GyHzb1n6kXCPM6cbRL1On5JO92nrd7G1edgn9 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: [snip] > >>>> @@ -1462,30 +1549,28 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >>>> nr_retry_pages = 0; >>>> >>>> list_for_each_entry_safe(folio, folio2, from, lru) { >>>> + if (folio_test_hugetlb(folio)) { >>> >>> How do we hit this case? Shouldn't migrate_hugetlbs() have already moved >>> any hugetlb folios off the from list? >> >> Retried hugetlb folios will be kept in from list. > > Couldn't migrate_hugetlbs() remove the failing retried pages from the > list on the final pass? That seems cleaner to me. To do that, we need to go through the folio list again to remove all hugetlb pages. It could be time-consuming in some cases. So I think that it's better to keep this. Best Regards, Huang, Ying >>>> + list_move_tail(&folio->lru, &ret_folios); >>>> + continue; >>>> + } >>>> + >>>> /* >>>> * Large folio statistics is based on the source large >>>> * folio. Capture required information that might get >>>> * lost during migration. >>>> */ >>>> - is_large = folio_test_large(folio) && !folio_test_hugetlb(folio); >>>> + is_large = folio_test_large(folio); >>>> is_thp = is_large && folio_test_pmd_mappable(folio); >>>> nr_pages = folio_nr_pages(folio); >>>> + >>>> cond_resched(); >>>> >>>> - if (folio_test_hugetlb(folio)) >>>> - rc = unmap_and_move_huge_page(get_new_page, >>>> - put_new_page, private, >>>> - &folio->page, pass > 2, mode, >>>> - reason, >>>> - &ret_folios); >>>> - else >>>> - rc = unmap_and_move(get_new_page, put_new_page, >>>> - private, folio, pass > 2, mode, >>>> - reason, &ret_folios); >>>> + rc = unmap_and_move(get_new_page, put_new_page, >>>> + private, folio, pass > 2, mode, >>>> + reason, &ret_folios); >>>> /* >>>> * The rules are: >>>> - * Success: non hugetlb folio will be freed, hugetlb >>>> - * folio will be put back >>>> + * Success: folio will be freed >>>> * -EAGAIN: stay on the from list >>>> * -ENOMEM: stay on the from list >>>> * -ENOSYS: stay on the from list >>>> @@ -1512,7 +1597,6 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >>>> stats.nr_thp_split += is_thp; >>>> break; >>>> } >>>> - /* Hugetlb migration is unsupported */ >>>> } else if (!no_split_folio_counting) { >>>> nr_failed++; >>>> }