Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b1a61f0 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[S390] cpu topology: introduce kernel parameter



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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 9fee8db2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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
+11 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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;