Skip to content

Commit

Permalink
[S390] cpu topology: introduce kernel parameter
Browse files Browse the repository at this point in the history
Introduce a topology=[on|off] kernel parameter which allows to switch
cpu topology on/off. Default will be off, since it looks like that for
some workloards this doesn't behave very well (on s390).

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Heiko Carstens authored and Martin Schwidefsky committed Dec 25, 2008
1 parent 9fee8db commit 2b1a61f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
8 changes: 8 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2252,6 +2252,14 @@ and is between 256 and 4096 characters. It is defined in the file
See comment before function dc390_setup() in
drivers/scsi/tmscsim.c.

topology= [S390]
Format: {off | on}
Specify if the kernel should make use of the cpu
topology informations if the hardware supports these.
The scheduler will make use of these informations and
e.g. base its process migration decisions on it.
Default is off.

tp720= [HW,PS2]

trix= [HW,OSS] MediaTrix AudioTrix Pro
Expand Down
12 changes: 11 additions & 1 deletion arch/s390/kernel/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ struct core_info {
cpumask_t mask;
};

static int topology_enabled;
static void topology_work_fn(struct work_struct *work);
static struct tl_info *tl_info;
static struct core_info core_info;
Expand All @@ -78,7 +79,7 @@ cpumask_t cpu_coregroup_map(unsigned int cpu)
cpumask_t mask;

cpus_clear(mask);
if (!machine_has_topology)
if (!topology_enabled || !machine_has_topology)
return cpu_possible_map;
spin_lock_irqsave(&topology_lock, flags);
while (core) {
Expand Down Expand Up @@ -263,6 +264,15 @@ static void topology_interrupt(__u16 code)
schedule_work(&topology_work);
}

static int __init early_parse_topology(char *p)
{
if (strncmp(p, "on", 2))
return 0;
topology_enabled = 1;
return 0;
}
early_param("topology", early_parse_topology);

static int __init init_topology_update(void)
{
int rc;
Expand Down

0 comments on commit 2b1a61f

Please sign in to comment.