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 4E1CDC0015E for ; Sun, 6 Aug 2023 05:05:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E5108D0002; Sun, 6 Aug 2023 01:05:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 494FF8D0001; Sun, 6 Aug 2023 01:05:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 383AA8D0002; Sun, 6 Aug 2023 01:05:03 -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 29D7A8D0001 for ; Sun, 6 Aug 2023 01:05:03 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DFD9DB1D30 for ; Sun, 6 Aug 2023 05:05:02 +0000 (UTC) X-FDA: 81092490444.19.B7A3F9D Received: from mail-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) by imf17.hostedemail.com (Postfix) with ESMTP id ECCEB4000F for ; Sun, 6 Aug 2023 05:05:00 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=JYEq72lt; spf=pass (imf17.hostedemail.com: domain of hughd@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691298301; 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=kD7nNOIObNtNAHZ/WPJsr0/IMIpCdcKwrAKTB88pbeU=; b=cp5kJ0IbxOHO2gTmGeCJL+P3E95NvaiY4TzofEbOlMS3yPslJYbZkn84K/QbIioZeauZiI jwx1/bLp4WKeguxRdaAB4QE0JyjwWzee1S3LnF8029JlNEBgFHmmTufCHgbrQssjoBmXnL GQoQGqy+SkNLHhS05e1TYqZvfU7Gnnw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691298301; a=rsa-sha256; cv=none; b=ibY5PI3PzWqwHO3zi/35WrpMdKNUMEY3BWEwP+dPvf/VnEuIAU162Y0WbXq2pp8FSKcZnN avecVMQgJ3NqLNa/n/ejx5zS+/0a2yaL/6JSl3dtNn1TQnWCakkVWaZkIAjwkKOs/h9Vc1 5zJHjtsT3sgMGl9E9RKiniKi1BcUh8s= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=JYEq72lt; spf=pass (imf17.hostedemail.com: domain of hughd@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f178.google.com with SMTP id 3f1490d57ef6-d0728058651so3669285276.1 for ; Sat, 05 Aug 2023 22:05:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691298300; x=1691903100; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=kD7nNOIObNtNAHZ/WPJsr0/IMIpCdcKwrAKTB88pbeU=; b=JYEq72ltlZNdiKJk0/tZjUKWHrOtN2gJckKHHkaIkYNQnJjg9tQkg9kjTPMBAb7XKl 4pUMyKNrqWPYTxLJElR9AqZH0Gepr2m9yKN7KESpwnUpUOcQf36y3m0617QK4d77TMbb Ue3sz4W6NdXH83d+yRDnu6hHIFajOvotmi142tvl7+/emzffPHV5SgIjCl6VkR1R67ms drj+q3/cZTY1H/BhDKotiUJ48LMH6xzu5lSMjpE1csq3d5XTNHw9/AhSc7FKoSvOLin1 e6kXDPkjZ6bInkJ7H3q5MixM1sAzgjc8l9JMikUS91PGsXF8eUJWwvURWIbLpEZrVD/N KNQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691298300; x=1691903100; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kD7nNOIObNtNAHZ/WPJsr0/IMIpCdcKwrAKTB88pbeU=; b=L8yPjJfLXIOX5u3lpaRzuSohhrHGkLdSEVH4zmyJyAO5hCaRcRvQtiQ5Cum1Qw3xMv EU91hPAPCAZ8O0AkmZqjbk7V7dYstjf7KMiAc9F707Xv1wIcSVtJOdZN8BfKMf+WbFgg djBJa6sVSfZ5u2iTI0rN5kv9081GOeAwbESMXXG9wB3MGO5PbTf3JmmgAI+fp1pD0k23 rV8vi+yXsHsNuZhVPJ2VrBcQzQuCm3q/nUBzdPu3XNoL0GCSp84HojWPGmBEtUcQ6VYH mMxgPwhjsUeQhLjZvDXwQ29m5y6XQssicvlRJbH5kENVmyH8w1w/h+FdUAGtYWFJSzZ5 oY0Q== X-Gm-Message-State: AOJu0Yx+iMcJQloprc72e8pKBj/kxXngo8rwQ4k2AmltuuH1Dp2YRIPK UM+sTntc8TKNzBeyZ6nBWOKKIA== X-Google-Smtp-Source: AGHT+IEkwc+7HgoNtgn+ahT6bReTdlMuaaeyxwNZdWVfSJO3mghlv58Q9v7Zw+Zy0uiPbU+lrsbEOw== X-Received: by 2002:a25:361b:0:b0:d0f:846c:ef7b with SMTP id d27-20020a25361b000000b00d0f846cef7bmr7439389yba.17.1691298299947; Sat, 05 Aug 2023 22:04:59 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id t64-20020a254643000000b00d0fe6cb4741sm1691914yba.25.2023.08.05.22.04.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Aug 2023 22:04:57 -0700 (PDT) Date: Sat, 5 Aug 2023 22:04:48 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Kefeng Wang cc: Matthew Wilcox , Hugh Dickins , Mel Gorman , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Huang Ying , David Hildenbrand Subject: Re: [PATCH 2/4] mm: migrate: convert numamigrate_isolate_page() to numamigrate_isolate_folio() In-Reply-To: <2f6c2ddb-b1a7-7152-bb7c-a5dcaf61ce36@huawei.com> Message-ID: <4b83ba15-9f1-812b-8620-1bd935262eaa@google.com> References: <20230802095346.87449-1-wangkefeng.wang@huawei.com> <20230802095346.87449-3-wangkefeng.wang@huawei.com> <2f6c2ddb-b1a7-7152-bb7c-a5dcaf61ce36@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Stat-Signature: ixoyuhboy3topm4368cdx647zx3q5dom X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: ECCEB4000F X-Rspam-User: X-HE-Tag: 1691298300-95339 X-HE-Meta: U2FsdGVkX1+1PWN5tgTwwz9Lh6bS61z7pLlG+3z2op4khthLCgxhfK1kXVDd5BDEnR0O6qOMANNraJBECx9mNZV6PBumaH5QjZw2AXEyhHw/+QMXq1/Pq21Kow64bchgU31gpUl/gdzcjQxtzdXAHg7nCYrQtQMZxEnIFYLarYvSJ29fCpzLVG2cE2gMAHblVK2yBQ6vbumCWF7yFUaCcJ0HilT1tWHwOlSa9p4Y2tuvY9vGjVhKJvtx0tJk/siFBJGHfhHWQrFEtlWZkYX7rGDpa8smd+ZysyokZWZTiZ+eY1Qs9IAVsNXCRDtL16mB0IwegbwNtGdK34rlNhZ24/LEqHt5jFLykR55Wjc8u47XETW+VL1OL67HuXdSj09WH0/5yrlaseHP58ItTB64bkvchhPsPA+NVVOqwUjNqkHAHTU2IUqRd82iGJGIs0ThNYWH5noHDBB24AQX5AUiV5BED4YVPeCbSwCm4sUt2PNeDe9ywmfSWmxuH21tdRm1mwldvT9eoNJY/y6XF2QUCuKJHjZ8faUBXJ8Q58vhNEyz1AIBFPqO///a5716GX6oU5qCXYWWNTVAcoO0TFJCI7SSXkCav9lVBZl+hvF3qDd3uKJvVgiNMoiNOTzEGXdKsKQunucptUR5g93MYJp80E3AZer5x4+Xc5QeoLV63n5dOdgq2UHxBks3m4CSqgwbk7B/aSmzxOGOYNCd1bE2u1ojHM+30l59pevVSRYFsd9bupHAbgx8lslnu48hiyikjWYvkTtvRTVX+S16u04w1Y4DQ6uvRdH9riCSKdjp9s39ymtL1U1uGS83rMBwnqaoYZv6bkUsnfPMgWnOu5BwRsWpojYM1ETuWL/Eh+d9Adp+TeMicSV3Ta6jStVqDZavpvI2QfRcJhtci2t4NSVyRcoVphkkiXWOK1X60wIVrRjBCPa13Za7q/7AkoE0DyKvJEgaIkaHD6khAlZuKaC WwxjoYbd z1ovSLcB30+c+vhRY3dE9dVlZ8mcNf6OYRIVhMfI9fxHZYMxIKq5SXtP3ciRpWrb9mlOK3EdTvCxrrMzoo8JbKXRBHMYFsQXvLIx93JF0kYXwMt2XLcsPj2zKdNNqzhTR6HW1Ua3riDcNixx/oYizg0usCEVDdpL2zYjACjYOSSutajVGbqkCQWmTJeLfRPsLY3N/vPzFHfg4Ww9GEGQevy7K2y1j/UrLrGfV2/OsoPeWcMHG2R0zP/E5Wz/QY4gjciLBcs67T45BtiYZGsic32HWDkLOkNg9VjTeVpPcdR9iyso/F2Uu0/B7vvg4F/+9/MYTa881sTemNFq+QrdM+4WhUVDg6jOjSrgjaXxSjLJcX7TyyfZqJ0OpV3umQ793e2UmXUN4+cJ9iVQduWPx41NeFKrOEbaLkHGs 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 Thu, 3 Aug 2023, Kefeng Wang wrote: > On 2023/8/2 20:30, Matthew Wilcox wrote: > > On Wed, Aug 02, 2023 at 05:53:44PM +0800, Kefeng Wang wrote: > >> /* Do not migrate THP mapped by multiple processes */ > >> - if (PageTransHuge(page) && total_mapcount(page) > 1) > >> + if (folio_test_pmd_mappable(folio) && folio_estimated_sharers(folio) > > >> 1) > >> return 0; > > > > I don't know if this is the right logic. We've willing to move folios > > mapped by multiple processes, as long as they're smaller than PMD size, > > but once they get to PMD size they're magical and can't be moved? > > It seems that the logical is introduced by commit 04fa5d6a6547 ("mm: > migrate: check page_count of THP before migrating") and refactor by > 340ef3902cf2 ("mm: numa: cleanup flow of transhuge page migration"), > > > "Hugh Dickins pointed out that migrate_misplaced_transhuge_page() does > not check page_count before migrating like base page migration and > khugepage. He could not see why this was safe and he is right." > > For now, there is no migrate_misplaced_transhuge_page() and base/thp > page migrate's path is unified, there is a check(for old/new kernel) in > migrate_misplaced_page(), Right, Mel's comment on safety above comes from a time when migrate_misplaced_transhuge_page() went its own way, and so did not reach the careful reference count checking found in (the now named) folio_migrate_mapping(). If migrate_misplaced_page() is now using the standard migrate_pages() for small pages and THPs, then there should no longer be safety concerns. > > "Don't migrate file pages that are mapped in multiple processes > with execute permissions as they are probably shared libraries." > > We could drop the above check in numamigrate_isolate_page(), but > according to 04fa5d6a6547, maybe disable migrate page shared by > multi-process during numa balance for both base/thp page. I'm out of touch with the NUMA balancing preferences at present, but think that you're probably right that it should aim to treat folio mapped into multiple processes the same way for small and large and THP (except, of course, that large and THP, with multiple PTEs in the same process, can present more challenges to how to go about that). Hugh