Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1446706pxb; Fri, 13 Nov 2020 12:57:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJxAs4yURZOBXXa0Ex49oNTNb8BlpRvIBEQ7lKB7axwIHe+OHiEwnfd2a531uBzmL94zDRcJ X-Received: by 2002:a17:906:48c1:: with SMTP id d1mr3790380ejt.123.1605301054134; Fri, 13 Nov 2020 12:57:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605301054; cv=none; d=google.com; s=arc-20160816; b=H9W0fhEkEkItqDIMQWIWek5d25ySuDtleibaRBEl6r/zdM3XMewC+muEL4rFdbRBcu 0UdFukN4JCtXFu3KO2NAMnt0ZU8uJm/K7+c1nkLfAQHilMD1SmC9yiBIJUYizQOBgpdM CavVIpLbLMzYhQHq5crLvNWC20YVvChPbhIMqrqdfEMTossSR9n0CRlWq9eXBUY8sodS XLFxZ1HoLVU49ehps8iKfRquzW/GjP+ZdLJ7S/KFFSHotCm0ASELHSKWDZfnmCgQTuKw 8cHQ859xrDraUrB+3S1+Xo+MeHzGAzB0br33pZPrCYyeUT6wStO0m63Rv4bLAbKB7hk/ glig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=J1P7rD6yvIgCZ2SrjtB9V6g8Qq2F/GDvh/5dKEAS9Os=; b=FjNqE5FThftbY32tigyyop6NtIOiW2z1Wr4BOESzMZuSdi5iQ+HLE8C6VMco+elHv3 oS9YH8RhcNdTgHBU+gh2wh6vWdjPLgKeRmNzSo04xVOr5JzTz16TdSTPAxAQJja1QYAd r1/awMhkBwtriuRm/PoGRx2cNhFOcBV3DQXzuZvrylhhCKr8S1NuX0QWSqjxxCxEqjIm 4970WyW7nBNvdtYfEvuoFzO5XTW63y7lhPnguYcr4C6X3/XOh5Z4a8CBH7tz3v3TUixn LqpCby8nvyJcDeUrRrC9eWPOx13eJmFHeRkgSBicLB9cEywl1Z5as91X9MNKWKGxp9jQ 6Ciw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hNK0lFKC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id sd24si6517427ejb.197.2020.11.13.12.57.11; Fri, 13 Nov 2020 12:57:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hNK0lFKC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726629AbgKMUyX (ORCPT + 99 others); Fri, 13 Nov 2020 15:54:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726092AbgKMUyU (ORCPT ); Fri, 13 Nov 2020 15:54:20 -0500 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62D98C0613D1 for ; Fri, 13 Nov 2020 12:54:20 -0800 (PST) Received: by mail-pg1-x544.google.com with SMTP id f27so8079542pgl.1 for ; Fri, 13 Nov 2020 12:54:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=J1P7rD6yvIgCZ2SrjtB9V6g8Qq2F/GDvh/5dKEAS9Os=; b=hNK0lFKC6nrx+tBMO9lk+1vmT9F08322YNvttvN+TBDGtouldHpOscthUXqKDNVHVr 39ysPpyqSm1lDQ93/cayV8KFIA+qKqhyRdhhTSxcUqi8co2gH/vwOPdp/zXd2QHwYUgH S/V1npOa1IuvYQLFjzpZ273DTPRBdw7njr6pv0MHUYyehwq9mgKYnoQFqPg8kEhX5z2f xYbo+wrPYW2GVrqIk4tv9pWoWTsDomBKvMFjQCEPZM+uRCPoXQizEPEPZxwIDl9lMzsO zu/3yGs1KR+vLxypceipMjRyW3flcp1OT4yC+sNZZGJtXwA6o9df/yUtjibB2CuSvKsC cugQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=J1P7rD6yvIgCZ2SrjtB9V6g8Qq2F/GDvh/5dKEAS9Os=; b=l8BHpaxq3+RMOldACXzlOXa8WcJkP5oWFNun6FIRjyRo0lmEa6WEg8AeBqJcZPJpbo DilwtpGczQRuux1QpRj6G3mOTK8D70HEhK2s8FG9YuIV5pekScInKqRpDazI3tqkeZdP 2Ly4WLxXoVqMNrwSHpyu/OhUSn81hQtk0j9gKLt/+zPdsfkprgA81RD7HX/WvcXU9B/g pdO048qDaRq+9fgd2LaF5VRq13w9R7cnIdi1GXxun0Hgrf4d8A4cUfGeWtDhE39s54oB 549556GyRlWcXRXZFbBmZgJ5ruBQhuYN84aR7YFKPtaA59TBKVrYO6DGGaH954dBJyOJ ACzw== X-Gm-Message-State: AOAM533sOiqsf7TgGBXzIMHzGHyIGFcf+F8DLhF1nANl00gDjGoBx4f0 ID59hEKsCPsHETosi/rVhSipZCadt5hXMQ== X-Received: by 2002:a63:f951:: with SMTP id q17mr3208392pgk.199.1605300860028; Fri, 13 Nov 2020 12:54:20 -0800 (PST) Received: from localhost.localdomain (c-107-3-138-210.hsd1.ca.comcast.net. [107.3.138.210]) by smtp.gmail.com with ESMTPSA id a18sm3780234pfa.151.2020.11.13.12.54.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Nov 2020 12:54:18 -0800 (PST) From: Yang Shi To: mhocko@suse.com, ziy@nvidia.com, songliubraving@fb.com, mgorman@suse.de, jack@suse.cz, willy@infradead.org, akpm@linux-foundation.org Cc: shy828301@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [v3 PATCH 3/5] mm: migrate: skip shared exec THP for NUMA balancing Date: Fri, 13 Nov 2020 12:53:57 -0800 Message-Id: <20201113205359.556831-4-shy828301@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201113205359.556831-1-shy828301@gmail.com> References: <20201113205359.556831-1-shy828301@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The NUMA balancing skip shared exec base page. Since CONFIG_READ_ONLY_THP_FOR_FS was introduced, there are probably shared exec THP, so skip such THPs for NUMA balancing as well. And Willy's regular filesystem THP support patches could create shared exec THP wven without that config. In addition, the page_is_file_lru() is used to tell if the page is file cache or not, but it filters out shmem page. It sounds like a typical usecase by putting executables in shmem to achieve performance gain via using shmem-THP, so it sounds worth skipping migration for such case too. Signed-off-by: Yang Shi --- mm/migrate.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index d7167f7107bd..18cc1ef0e447 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2069,6 +2069,17 @@ bool pmd_trans_migrating(pmd_t pmd) return PageLocked(page); } +static inline bool is_shared_exec_page(struct vm_area_struct *vma, + struct page *page) +{ + if (page_mapcount(page) != 1 && + (page_is_file_lru(page) || vma_is_shmem(vma)) && + (vma->vm_flags & VM_EXEC)) + return true; + + return false; +} + /* * Attempt to migrate a misplaced page to the specified destination * node. Caller is expected to have an elevated reference count on @@ -2086,8 +2097,7 @@ int migrate_misplaced_page(struct page *page, struct vm_area_struct *vma, * 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) && - (vma->vm_flags & VM_EXEC)) + if (is_shared_exec_page(vma, page)) goto out; /* @@ -2142,6 +2152,9 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, int page_lru = page_is_file_lru(page); unsigned long start = address & HPAGE_PMD_MASK; + if (is_shared_exec_page(vma, page)) + goto out; + new_page = alloc_pages_node(node, (GFP_TRANSHUGE_LIGHT | __GFP_THISNODE), HPAGE_PMD_ORDER); @@ -2253,6 +2266,7 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, out_unlock: unlock_page(page); +out: put_page(page); return 0; } -- 2.26.2