From 2eb57dd2bb1e38f715e351806d42f695fa68b74c Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Thu, 5 Jun 2003 18:55:12 -0700 Subject: [PATCH] Don't let processes be scheduled on CPU-less nodes (1/3) From: Matthew Dobson sched_best_cpu schedules processes on nodes based on node_nr_running. For CPU-less nodes, this is always 0, and thus sched_best_cpu tends to migrate tasks to these nodes, which eventually get remigrated elsewhere. This patch adds include/linux/topology.h, and modifies all includes of asm/topology.h to linux/topology.h. A subsequent patch in this series adds helper functions to linux/topology.h to ensure processes are only migrated to nodes with CPUs. Test compiled and booted by Andrew Theurer (habanero@us.ibm.com) on both x440 and ppc64. --- include/asm-i386/cpu.h | 2 +- include/asm-i386/memblk.h | 2 +- include/asm-i386/node.h | 3 +-- include/linux/mmzone.h | 2 +- include/linux/topology.h | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 include/linux/topology.h (limited to 'include') diff --git a/include/asm-i386/cpu.h b/include/asm-i386/cpu.h index b2b79ebda49b..8324108c134f 100644 --- a/include/asm-i386/cpu.h +++ b/include/asm-i386/cpu.h @@ -3,8 +3,8 @@ #include #include +#include -#include #include struct i386_cpu { diff --git a/include/asm-i386/memblk.h b/include/asm-i386/memblk.h index bd8187e358bb..668fc0d644ba 100644 --- a/include/asm-i386/memblk.h +++ b/include/asm-i386/memblk.h @@ -4,8 +4,8 @@ #include #include #include +#include -#include #include struct i386_memblk { diff --git a/include/asm-i386/node.h b/include/asm-i386/node.h index 104f10b2bbf7..052e11250df9 100644 --- a/include/asm-i386/node.h +++ b/include/asm-i386/node.h @@ -4,8 +4,7 @@ #include #include #include - -#include +#include struct i386_node { struct node node; diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 2a80a0c3fe2f..d60c10f0d9e2 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -255,7 +255,7 @@ static inline struct zone *next_zone(struct zone *zone) #define MAX_NR_MEMBLKS 1 #endif /* CONFIG_NUMA */ -#include +#include /* Returns the number of the current Node. */ #define numa_node_id() (cpu_to_node(smp_processor_id())) diff --git a/include/linux/topology.h b/include/linux/topology.h new file mode 100644 index 000000000000..fa83ecf25748 --- /dev/null +++ b/include/linux/topology.h @@ -0,0 +1,32 @@ +/* + * include/linux/topology.h + * + * Written by: Matthew Dobson, IBM Corporation + * + * Copyright (C) 2002, IBM Corp. + * + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Send feedback to + */ +#ifndef _LINUX_TOPOLOGY_H +#define _LINUX_TOPOLOGY_H + +#include + +#endif /* _LINUX_TOPOLOGY_H */ -- cgit v1.2.3