Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp949527pxb; Tue, 9 Feb 2021 17:43:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKGZezuPK2FHnAWrOLbPgtadtgKty6UjBgyUVqq1/V5s8z+v2d1dz+x927cqpi5OzaIwRM X-Received: by 2002:a05:6402:451:: with SMTP id p17mr995691edw.248.1612921393574; Tue, 09 Feb 2021 17:43:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612921393; cv=none; d=google.com; s=arc-20160816; b=ZMBJ6gSBaZY7JZSVgjnhHTcP8oAGIn+doq3uIq6JF6FJ43zKObRp2ZlO36KqUPJeX2 AOjbepI6v+Btp4o8BxW943ep82R+y6AHTxxLhQp4doXDrFw9G3Gz15vUaApID74XNPvg aD9zgX6drDbPF0uCXEYLeNP54uOrone8rraODR+5bTrYYeEpoKMsBJclriA95l7OgN3o V5eHvYgfLG1g/SomSlqaZNvZZdM0csmOFt3rldepPw4satmrPJeiODp2kRDmWHy3mg+0 EQCgnhTvKI7ddo8jW7TbKHrz+Bd+lCf9Zko0WKh4auPF92ZMr1s3NTfRQwTmOOHPB9QP jWCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:autocrypt:from :references:cc:to:subject:ironport-sdr:ironport-sdr; bh=SJq4jzW6tpl5TIIjeWTGdJxyNrRo7EB8aHkMKQPXcWI=; b=OBM8eTEWLjXti38Oe9g4MO2Y7L5mavsoEBTgOBzq0LcFcSibKpsHjNp0soK50aXgUl j1D7Ys5DjH/3xWc5LdpGnsV8WNp1Fg+HHHPgWNrjsVGmhIdiRZN3jb6ONe/+X7QkVI7S K7e6wyrJ875DSRv8Qw/XKMioWV+6vBjkx6Vpu1EkUKOWYqfpLAyd2MxNcFFPHL7/Ux5N XQaLoUSlzVOH4lqlWIo7MmTErPpWGvOeIHXPStjiLtGzf8RgSRGntQKqJ3XYyzlDnbHP zuHDyBzes7U9Z/ZU/hZ91hHJDE6vkONqesau88Ul5HhEELRFyjFUbjuVb3+cXOuxgX3I +M/g== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jz9si271049ejb.510.2021.02.09.17.42.50; Tue, 09 Feb 2021 17:43:13 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234395AbhBJBmR (ORCPT + 99 others); Tue, 9 Feb 2021 20:42:17 -0500 Received: from mga11.intel.com ([192.55.52.93]:64618 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234508AbhBIXqk (ORCPT ); Tue, 9 Feb 2021 18:46:40 -0500 IronPort-SDR: A6X6E3fzfHZkra6D/IHYoeVdE5gKEqzjAYtWUUichc+RwKbMeXDi9E0QBuBFzasFqCk14R/mBg N0hA2NMH2Bgw== X-IronPort-AV: E=McAfee;i="6000,8403,9890"; a="178472892" X-IronPort-AV: E=Sophos;i="5.81,166,1610438400"; d="scan'208";a="178472892" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2021 15:45:56 -0800 IronPort-SDR: /nqlYUddvZ3ohSqzBB5C1A2vr7LHgmymi5ZUC0BFlm8RSS3ly5v7nGaMm3poB6lXjAC6CPKKW8 KU1wIkiTNOlQ== X-IronPort-AV: E=Sophos;i="5.81,166,1610438400"; d="scan'208";a="361106342" Received: from asklovsk-mobl.amr.corp.intel.com (HELO [10.212.123.206]) ([10.212.123.206]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2021 15:45:56 -0800 Subject: Re: [RFC][PATCH 06/13] mm/migrate: update migration order during on hotplug events To: Oscar Salvador , Dave Hansen Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, yang.shi@linux.alibaba.com, rientjes@google.com, ying.huang@intel.com, dan.j.williams@intel.com, david@redhat.com References: <20210126003411.2AC51464@viggo.jf.intel.com> <20210126003423.8D2B5637@viggo.jf.intel.com> <20210202114157.GA12139@linux> From: Dave Hansen Autocrypt: addr=dave.hansen@intel.com; keydata= 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 z5cecg== Message-ID: Date: Tue, 9 Feb 2021 15:45:55 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20210202114157.GA12139@linux> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2/2/21 3:42 AM, Oscar Salvador wrote: >> +static int __meminit migrate_on_reclaim_callback(struct notifier_block *self, >> + unsigned long action, void *arg) >> +{ >> + switch (action) { >> + case MEM_GOING_OFFLINE: >> + /* >> + * Make sure there are not transient states where >> + * an offline node is a migration target. This >> + * will leave migration disabled until the offline >> + * completes and the MEM_OFFLINE case below runs. >> + */ >> + disable_all_migrate_targets(); >> + break; >> + case MEM_OFFLINE: >> + case MEM_ONLINE: >> + /* >> + * Recalculate the target nodes once the node >> + * reaches its final state (online or offline). >> + */ >> + __set_migration_target_nodes(); >> + break; >> + case MEM_CANCEL_OFFLINE: >> + /* >> + * MEM_GOING_OFFLINE disabled all the migration >> + * targets. Reenable them. >> + */ >> + __set_migration_target_nodes(); >> + break; >> + case MEM_GOING_ONLINE: >> + case MEM_CANCEL_ONLINE: >> + break; >> + } >> + >> + return notifier_from_errno(0); >> +} > This looks good, and I kinda like it. > But in this case, all we care about is whether NUMA node does or does > not have memory, so we have to remove/added into the demotion list. > So, would make more sense to have a kinda helper in > node_states_{set,clear}_node that calls the respective functions > (disable_all_migrate_targets and __set_migration_target_nodes)? Of, you're saying that we could do this in the hotplug code itself instead of from a notifier? I agree, we *could*. That would be more efficient. But, I do like the idea of doing this from a notifier because it's a bit less brittle. Do you feel strongly about this one?