x86/cpu: Always print SMP information in /proc/cpuinfo
Currently show_cpuinfo_core() displays cpu core information only if the number of threads per a whole cores is 2 or larger. However, this condition doesn't care about the number of sockets. For example, this condition doesn't hold on systems with two logical cpus consisting of two sockets and a single core on each socket - yet the topology information would be interesting to see in that case as well. I don't know whether or not there are processors in real world by which such configurations are possible, but at least on vitual machine environments, such configuration can occur, typically when no explicit SMP information is provided in advance. For example, on qemu/KVM, SMP information is specified via -smp command-line option, more specifically, its syntax is: -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus] If this is not specified, qemu tells configuration with n-sockets, 1-core and 1-thread to the guest machine, on which guest, MP information is not displayed in /proc/cpuinfo. I saw this situation on VMWare guest environment, too. To fix this issue, this patch simply removes the condition because this information is useful even if there's only 1 thread. Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: H. Peter Anvin <hpa@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/5277D644.4090707@jp.fujitsu.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
164777530b
commit
a477c8594b
1 changed files with 6 additions and 9 deletions
|
@ -11,15 +11,12 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
|
||||||
unsigned int cpu)
|
unsigned int cpu)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
if (c->x86_max_cores * smp_num_siblings > 1) {
|
seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
|
||||||
seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
|
seq_printf(m, "siblings\t: %d\n", cpumask_weight(cpu_core_mask(cpu)));
|
||||||
seq_printf(m, "siblings\t: %d\n",
|
seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
|
||||||
cpumask_weight(cpu_core_mask(cpu)));
|
seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
|
||||||
seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
|
seq_printf(m, "apicid\t\t: %d\n", c->apicid);
|
||||||
seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
|
seq_printf(m, "initial apicid\t: %d\n", c->initial_apicid);
|
||||||
seq_printf(m, "apicid\t\t: %d\n", c->apicid);
|
|
||||||
seq_printf(m, "initial apicid\t: %d\n", c->initial_apicid);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue