From patchwork Sun Jan 19 03:06:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 11340447 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BF0CA138D for ; Sun, 19 Jan 2020 03:07:23 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 90A3C246B6 for ; Sun, 19 Jan 2020 03:07:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90A3C246B6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3AA6F6B0553; Sat, 18 Jan 2020 22:07:22 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 30BB06B0554; Sat, 18 Jan 2020 22:07:22 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D5BC6B0555; Sat, 18 Jan 2020 22:07:22 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0004.hostedemail.com [216.40.44.4]) by kanga.kvack.org (Postfix) with ESMTP id ED99C6B0553 for ; Sat, 18 Jan 2020 22:07:21 -0500 (EST) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 9662F8248047 for ; Sun, 19 Jan 2020 03:07:21 +0000 (UTC) X-FDA: 76392897882.01.chess26_2310cfcd8154d X-Spam-Summary: 1,0,0,,d41d8cd98f00b204,richardw.yang@linux.intel.com,:akpm@linux-foundation.org::linux-kernel@vger.kernel.org:mhocko@suse.com:yang.shi@linux.alibaba.com:richardw.yang@linux.intel.com,RULES_HIT:30054:30070:30080,0,RBL:134.134.136.31:@linux.intel.com:.lbl8.mailshell.net-62.18.0.100 64.95.201.95,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:38,LUA_SUMMARY:none X-HE-Tag: chess26_2310cfcd8154d X-Filterd-Recvd-Size: 2570 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by imf41.hostedemail.com (Postfix) with ESMTP for ; Sun, 19 Jan 2020 03:07:20 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2020 19:07:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,336,1574150400"; d="scan'208";a="258308768" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by fmsmga002.fm.intel.com with ESMTP; 18 Jan 2020 19:07:18 -0800 From: Wei Yang To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, mhocko@suse.com, yang.shi@linux.alibaba.com, Wei Yang Subject: [PATCH 1/8] mm/migrate.c: skip node check if done in last round Date: Sun, 19 Jan 2020 11:06:29 +0800 Message-Id: <20200119030636.11899-2-richardw.yang@linux.intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200119030636.11899-1-richardw.yang@linux.intel.com> References: <20200119030636.11899-1-richardw.yang@linux.intel.com> 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: Before move page to target node, we would check if the node id is valid. In case we would try to move pages to the same target node, it is not necessary to do the check each time. This patch tries to skip the check if the node has been checked. Signed-off-by: Wei Yang --- mm/migrate.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 430fdccc733e..ba7cf4fa43a0 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1612,15 +1612,18 @@ static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes, goto out_flush; addr = (unsigned long)untagged_addr(p); - err = -ENODEV; - if (node < 0 || node >= MAX_NUMNODES) - goto out_flush; - if (!node_state(node, N_MEMORY)) - goto out_flush; + /* Check node if it is not checked. */ + if (current_node == NUMA_NO_NODE || node != current_node) { + err = -ENODEV; + if (node < 0 || node >= MAX_NUMNODES) + goto out_flush; + if (!node_state(node, N_MEMORY)) + goto out_flush; - err = -EACCES; - if (!node_isset(node, task_nodes)) - goto out_flush; + err = -EACCES; + if (!node_isset(node, task_nodes)) + goto out_flush; + } if (current_node == NUMA_NO_NODE) { current_node = node;