Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1636504pxp; Thu, 17 Mar 2022 13:16:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAujyIKg/pMz9uFSaEjzv/oU9SkC76UiNKisxnTPQy8wceHC1QrEik/LvplLR8eu/NXvhm X-Received: by 2002:a17:902:f782:b0:14b:63db:9bc1 with SMTP id q2-20020a170902f78200b0014b63db9bc1mr6913920pln.60.1647548163802; Thu, 17 Mar 2022 13:16:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647548163; cv=none; d=google.com; s=arc-20160816; b=sMadX+Kg5pAWtLSEPOrAPMmd3zE0Psv1PhE5OhzXkTMSBHpYU3+fJtQpAhzNkVVAV6 YSE9VeHsagvSpQpo94ChPEPsCBES30eMj+yZOKmLDOQsVHLoPbCJO8UjBMCYRnjpGSHc uL1UMo9KSBXpucTNkuc7KlWMr9EeMxIWbKU9Jz7jBKhIy+oNwDPDtqz7LdE3H/zsH5xe ZOA+FlZsgSnpUj81P4am2mV/0/3Dir9auMq5ofxqjma/ub+QSKzMWlImQ6+j2AXW69UA YTf1/o9x8poOfcqdrqWRz2HByQO8MkO8YW01i+4rOQoRzGqTBFjt550kbg2oD5Fm+INO XmAg== 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 :message-id:date:subject:cc:to:from:dkim-signature:dkim-signature; bh=MDeAE84DRLdT9jTy1nr6IG8m6m2XkLXKMCgf9rNtHAE=; b=OYtQh/P//3i9SA8TAD2Lv5Tle74gRLSRabrb7ZHQI8LY58EWwxir9KRtXb1pxUp3// EPaLw6q0Q6gcMUsv/zv3W+lcetCRVRnGhj1eQL1nLtQJEVJitsgXT3dxvrSU119YOV2+ w3C99quKJzRvH1Dx/2cX57pnkSzB8IM02FqNgPCTdb//lcPpUEc7TNUQgxjlosBcsaaT VaxODIOdBPyvnhs0bnZ2o+nXF16kNydKont168LU5DPE8eRgHWv0+mrpL6bkJrlI1fKQ 6gNGQ1SIhCKBTjmjC6YbPWCrRVVW/zUUEFm2u9zogFzq/cN551761/Hl6Nw1WmQhf9To xlGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p6ZXeSgn; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id lw5-20020a17090b180500b001bd14e03060si3947319pjb.56.2022.03.17.13.16.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Mar 2022 13:16:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p6ZXeSgn; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id ECF23103D9C; Thu, 17 Mar 2022 12:58:15 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234543AbiCQN0N (ORCPT + 99 others); Thu, 17 Mar 2022 09:26:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234549AbiCQN0M (ORCPT ); Thu, 17 Mar 2022 09:26:12 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12425197AED for ; Thu, 17 Mar 2022 06:24:55 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id AF9F821108; Thu, 17 Mar 2022 13:24:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1647523493; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MDeAE84DRLdT9jTy1nr6IG8m6m2XkLXKMCgf9rNtHAE=; b=p6ZXeSgny6Tu58YnVcA0wv/EvTIaFQdn+VqHGWds/5zwIRG/22ulGIfKP1dTLUIAjbhiMb lQ48yGOMljRn9o0yb5mBRlYaLn7pN/jvBNY04rUreV9oAZLPHplVy+FC+/W2QS4M3EAX0M ZDKN0NbllGBtCNdE1oB0HPebCUsUbzs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1647523493; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MDeAE84DRLdT9jTy1nr6IG8m6m2XkLXKMCgf9rNtHAE=; b=nheOVJ5H9rGvN+YbNv/kMHTF3T3D1p8eWb0ejrQDQj4HYk27fukhHOv5nUuGXpPcozo3BZ MUzuMa1jerXV7qDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3585013BA9; Thu, 17 Mar 2022 13:24:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sRQWCqU2M2IgEAAAMHmgww (envelope-from ); Thu, 17 Mar 2022 13:24:53 +0000 From: Oscar Salvador To: Andrew Morton Cc: Dave Hansen , "Huang, Ying" , Abhishek Goel , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH] mm: Untangle config dependencies for demote-on-reclaim Date: Thu, 17 Mar 2022 14:24:50 +0100 Message-Id: <20220317132450.5116-1-osalvador@suse.de> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 At the time demote-on-reclaim was introduced, it was tied to CONFIG_HOTPLUG_CPU + CONFIG_MIGRATE, but that is not really accurate. The only two things we need to depen on is CONFIG_NUMA + CONFIG_MIGRATE, so clean this up. Furthermore, we only register the hotplug memory notifier when the system has CONFIG_MEMORY_HOTPLUG. Signed-off-by: Oscar Salvador Suggested-by: "Huang, Ying" --- include/linux/migrate.h | 5 ++++- mm/migrate.c | 11 ++++++----- mm/vmstat.c | 2 -- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/linux/migrate.h b/include/linux/migrate.h index a4a336fd81fc..1efabe7bb5fc 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h @@ -49,14 +49,17 @@ int folio_migrate_mapping(struct address_space *mapping, extern bool numa_demotion_enabled; extern void migrate_on_reclaim_init(void); -#ifdef CONFIG_HOTPLUG_CPU +#ifdef CONFIG_NUMA extern void set_migration_target_nodes(void); +extern void migrate_on_reclaim_init(void); #else static inline void set_migration_target_nodes(void) {} +static inline void migrate_on_reclaim_init(void) {} #endif #else static inline void set_migration_target_nodes(void) {} +static inline void migrate_on_reclaim_init(void) {} static inline void putback_movable_pages(struct list_head *l) {} static inline int migrate_pages(struct list_head *l, new_page_t new, diff --git a/mm/migrate.c b/mm/migrate.c index 3364bfaddeef..118f71425241 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2144,7 +2144,6 @@ int migrate_misplaced_page(struct page *page, struct vm_area_struct *vma, return 0; } #endif /* CONFIG_NUMA_BALANCING */ -#endif /* CONFIG_NUMA */ /* * node_demotion[] example: @@ -2278,7 +2277,6 @@ int next_demotion_node(int node) return target; } -#if defined(CONFIG_HOTPLUG_CPU) /* Disable reclaim-based migration. */ static void __disable_all_migrate_targets(void) { @@ -2471,6 +2469,7 @@ void set_migration_target_nodes(void) * __set_migration_target_nodes() can be used as opposed to * set_migration_target_nodes(). */ +#ifdef CONFIG_MEMORY_HOTPLUG static int __meminit migrate_on_reclaim_callback(struct notifier_block *self, unsigned long action, void *_arg) { @@ -2516,6 +2515,7 @@ static int __meminit migrate_on_reclaim_callback(struct notifier_block *self, return notifier_from_errno(0); } +#endif void __init migrate_on_reclaim_init(void) { @@ -2523,8 +2523,9 @@ void __init migrate_on_reclaim_init(void) sizeof(struct demotion_nodes), GFP_KERNEL); WARN_ON(!node_demotion); - +#ifdef CONFIG_MEMORY_HOTPLUG hotplug_memory_notifier(migrate_on_reclaim_callback, 100); +#endif /* * At this point, all numa nodes with memory/CPus have their state * properly set, so we can build the demotion order now. @@ -2535,7 +2536,6 @@ void __init migrate_on_reclaim_init(void) set_migration_target_nodes(); cpus_read_unlock(); } -#endif /* CONFIG_HOTPLUG_CPU */ bool numa_demotion_enabled = false; @@ -2596,4 +2596,5 @@ static int __init numa_init_sysfs(void) return err; } subsys_initcall(numa_init_sysfs); -#endif +#endif /* CONFIG_SYSFS */ +#endif /* CONFIG_NUMA */ diff --git a/mm/vmstat.c b/mm/vmstat.c index b75b1a64b54c..f2d0dec1062d 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -2111,9 +2111,7 @@ void __init init_mm_internals(void) start_shepherd_timer(); #endif -#if defined(CONFIG_MIGRATION) && defined(CONFIG_HOTPLUG_CPU) migrate_on_reclaim_init(); -#endif #ifdef CONFIG_PROC_FS proc_create_seq("buddyinfo", 0444, NULL, &fragmentation_op); proc_create_seq("pagetypeinfo", 0400, NULL, &pagetypeinfo_op); -- 2.34.1