Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1543231pxb; Tue, 8 Feb 2022 21:43:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDr/y5sNvvVVz1E0JBnLt/X1LVbfjZ034bx3RI6Lqb6s0QOy4l1Tv73R5mNi/d4OVlIzd1 X-Received: by 2002:a17:90b:4ad2:: with SMTP id mh18mr1629832pjb.51.1644385419676; Tue, 08 Feb 2022 21:43:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644385419; cv=none; d=google.com; s=arc-20160816; b=kn/65aTvGvbObJwQnIc4/2hl1MJOdT7EYTt7BdQ+gU6SyJ8IWbtBZm3Pl5GUUajvx4 +RBwLXsXe4FW52yvjDMjGEf/9H4CsR4UWrVgGT2NVRvlXcnr6OCQvCahrCiqr7E7GHn9 +pCNfRkbZsuUyUQc1oUKJen9QAoLjyOau9EzbmxQWX3mwu8E1pgA9nR51ob9BMHbiIzm g1H82v/hEX4ZLR7NnP6JaFX1km8FAZnLSJxambzIFEFbF2IlVQliXpEM0XxgC1572c73 pK7jhekdX6cA9DmfdCZIlI6vTAKrWQHqBKwAtXI7Z64W2xAu0aQ8zMH9HFEVEKJaJVHf qK7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:message-id:in-reply-to :date:references:subject:cc:to:from:dkim-signature; bh=FU2CDbz8uvmVNzB3YtNFitOddXlv3cZ72+Dqrp8XdCo=; b=dmNadtEAiErLZGdJRWW9RcGLPqyRY4x+RRgGqz8cJVHazLfrEWwEgg6kXgDXTJWRaF J/nzkwY8jEp2s9Zv2Og3hLjuSkwzLogrX+Y4dyMta+fWp1WElTVBg6bbZczXOivLSZ84 qwwU2uEH+IGV6ivW4kvw8i04dOqRM9vvdESCLMBNY2Rd/5XiRi+XOm4brjDLV6PoV3zL 7VTV4xQ07GM2KRKdkNVnCY3qxN0T47PeLcmxW1UH/VWArRFmpOAKc5WhFJWldG7/5Tib FRxB33Z1YFuKLvvZu6XxnJ4o56QljLqb/0YAGmUCAFq5ak6WSGluR7NHlEpohlW8mR5P iSfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bW4c3AMA; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id o11si6922774plg.26.2022.02.08.21.43.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 21:43:39 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bW4c3AMA; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CB7B3DF493FD; Tue, 8 Feb 2022 21:38:55 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349217AbiBHIVA (ORCPT + 99 others); Tue, 8 Feb 2022 03:21:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349199AbiBHIUp (ORCPT ); Tue, 8 Feb 2022 03:20:45 -0500 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AF8CC03FEDC for ; Tue, 8 Feb 2022 00:19:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644308396; x=1675844396; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=tuIR9wF0k+6Vhg3ZZvw4XQ2JjoGwBZ5JjajcPWMoMh8=; b=bW4c3AMAWcSipm+vvG/WWWAfR5yTsqqmk3vEQF11fPLZKWSSEK5ZNmy0 HfSUdkxsXFbsxXzuRQ2FFkkf0I5qImk6JqrHmBpnbG0XLRuHxNQA5Klrl 0o1CT6CMmZJ9vTrZI75QzI/RUTCWAKJL/7HYiEJq8ku19e8YdfM+PdoL0 nlMdEbUMEljdRVvEQ4bOABX+0lti3wv2JxOHhjJBp8AWo5AyNXYC8tJuZ N6jk+MupxNS6IrlJlVkFHpuJwazxnnV+d+hHTgOPdFqICPR6Wf0zcVkNw 2ZROS7Mp1HjDlC9qlDzTt3gkmRR530hPviVy+TF5jYWmdgCCrzxeTru0f A==; X-IronPort-AV: E=McAfee;i="6200,9189,10251"; a="232466294" X-IronPort-AV: E=Sophos;i="5.88,352,1635231600"; d="scan'208";a="232466294" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2022 00:19:56 -0800 X-IronPort-AV: E=Sophos;i="5.88,352,1635231600"; d="scan'208";a="525460508" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.239.13.11]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2022 00:19:54 -0800 From: "Huang, Ying" To: Srikar Dronamraju Cc: Peter Zijlstra , Mel Gorman , linux-kernel@vger.kernel.org, Ingo Molnar , Rik van Riel Subject: Re: [RFC PATCH 2/2] NUMA balancing: avoid to migrate task to CPU-less node References: <20220128023842.1946583-1-ying.huang@intel.com> <20220128023842.1946583-2-ying.huang@intel.com> <20220128053341.GB618915@linux.vnet.ibm.com> <877dakti0n.fsf@yhuang6-desk2.ccr.corp.intel.com> <20220201055904.GD618915@linux.vnet.ibm.com> Date: Tue, 08 Feb 2022 16:19:52 +0800 In-Reply-To: <20220201055904.GD618915@linux.vnet.ibm.com> (Srikar Dronamraju's message of "Tue, 1 Feb 2022 11:29:04 +0530") Message-ID: <8735ktn51z.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-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Srikar Dronamraju writes: > * Huang, Ying [2022-01-28 15:51:36]: > >> Srikar Dronamraju writes: >> >> > * Huang Ying [2022-01-28 10:38:42]: >> > >> This sounds reasonable. How about the following solution? If a >> CPU-less node is selected as migration target, we select a nearest node >> with CPU instead? That is, something like the below patch. >> >> Best Regards, >> Huang, Ying >> >> ------------------------------8<--------------------------------- >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index 5146163bfabb..52d926d8cbdb 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -2401,6 +2401,23 @@ static void task_numa_placement(struct task_struct *p) >> } >> } >> >> + /* Cannot migrate task to CPU-less node */ >> + if (!node_state(max_nid, N_CPU)) { >> + int near_nid = max_nid; >> + int distance, near_distance = INT_MAX; >> + >> + for_each_online_node(nid) { >> + if (!node_state(nid, N_CPU)) >> + continue; >> + distance = node_distance(max_nid, nid); >> + if (distance < near_distance) { >> + near_nid = nid; >> + near_distance = distance; >> + } >> + } >> + max_nid = near_nid; >> + } >> + > > > This looks good. but should we move this into preferred_group_nid()? Yes. We need to take care of preferred_group_nid() too. Will do that in the next version. > i.e should we care for !ng case, since those would mean only private faults. IMO we need to care for !ng case. If the fault number of the CPU-less node is the max, we need to migrate to the nearest node with CPU instead. Best Regards, Huang, Ying >> if (ng) { >> numa_group_count_active_nodes(ng); >> spin_unlock_irq(group_lock);