Skip to content

Commit

Permalink
sh: Support SCHED_MC for SH-X3 multi-cores.
Browse files Browse the repository at this point in the history
This enables SCHED_MC support for SH-X3 multi-cores. Presently this is
just a simple wrapper around the possible map, but this allows for
tying in support for some of the more exotic NUMA clusters where we can
actually do something with the topology.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Oct 16, 2009
1 parent 9dbe00a commit 896f0c0
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arch/sh/include/asm/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@

#endif

#define mc_capable() (1)

const struct cpumask *cpu_coregroup_mask(unsigned int cpu);

extern cpumask_t cpu_core_map[NR_CPUS];

#define topology_core_cpumask(cpu) (&cpu_core_map[cpu])

#include <asm-generic/topology.h>

#endif /* _ASM_SH_TOPOLOGY_H */
26 changes: 26 additions & 0 deletions arch/sh/kernel/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,32 @@

static DEFINE_PER_CPU(struct cpu, cpu_devices);

cpumask_t cpu_core_map[NR_CPUS];

static cpumask_t cpu_coregroup_map(unsigned int cpu)
{
/*
* Presently all SH-X3 SMP cores are multi-cores, so just keep it
* simple until we have a method for determining topology..
*/
return cpu_possible_map;
}

const struct cpumask *cpu_coregroup_mask(unsigned int cpu)
{
return &cpu_core_map[cpu];
}

int arch_update_cpu_topology(void)
{
unsigned int cpu;

for_each_possible_cpu(cpu)
cpu_core_map[cpu] = cpu_coregroup_map(cpu);

return 0;
}

static int __init topology_init(void)
{
int i, ret;
Expand Down
9 changes: 9 additions & 0 deletions arch/sh/mm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,15 @@ endchoice

source "mm/Kconfig"

config SCHED_MC
bool "Multi-core scheduler support"
depends on SMP
default y
help
Multi-core scheduler support improves the CPU scheduler's decision
making when dealing with multi-core CPU chips at a cost of slightly
increased overhead in some places. If unsure say N here.

endmenu

menu "Cache configuration"
Expand Down

0 comments on commit 896f0c0

Please sign in to comment.