From: Andi Kleen Only display physical id/siblings when there are siblings or dual core. In 2.6.11 I accidentially broke it and it was always displaying these fields But for compatibility to all these /proc parsers around it is better to do it in the old way again. Noticed by Suresh Siddha Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/cpu/proc.c | 7 +++++-- 25-akpm/arch/x86_64/kernel/setup.c | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff -puN arch/i386/kernel/cpu/proc.c~x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610 arch/i386/kernel/cpu/proc.c --- 25/arch/i386/kernel/cpu/proc.c~x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610 Fri Apr 8 16:38:02 2005 +++ 25-akpm/arch/i386/kernel/cpu/proc.c Fri Apr 8 16:38:02 2005 @@ -94,8 +94,11 @@ static int show_cpuinfo(struct seq_file if (c->x86_cache_size >= 0) seq_printf(m, "cache size\t: %d KB\n", c->x86_cache_size); #ifdef CONFIG_X86_HT - seq_printf(m, "physical id\t: %d\n", phys_proc_id[n]); - seq_printf(m, "siblings\t: %d\n", c->x86_num_cores * smp_num_siblings); + if (c->x86_num_cores * smp_num_siblings > 1) { + seq_printf(m, "physical id\t: %d\n", phys_proc_id[n]); + seq_printf(m, "siblings\t: %d\n", + c->x86_num_cores * smp_num_siblings); + } #endif /* We use exception 16 if we have hardware math and we've either seen it or the CPU claims it is internal */ diff -puN arch/x86_64/kernel/setup.c~x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610 arch/x86_64/kernel/setup.c --- 25/arch/x86_64/kernel/setup.c~x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610 Fri Apr 8 16:38:02 2005 +++ 25-akpm/arch/x86_64/kernel/setup.c Fri Apr 8 16:38:02 2005 @@ -1139,8 +1139,12 @@ static int show_cpuinfo(struct seq_file seq_printf(m, "cache size\t: %d KB\n", c->x86_cache_size); #ifdef CONFIG_SMP - seq_printf(m, "physical id\t: %d\n", phys_proc_id[c - cpu_data]); - seq_printf(m, "siblings\t: %d\n", c->x86_num_cores * smp_num_siblings); + if (smp_num_siblings * c->x86_num_cores > 1) { + int cpu = c - cpu_data; + seq_printf(m, "physical id\t: %d\n", phys_proc_id[cpu]); + seq_printf(m, "siblings\t: %d\n", + c->x86_num_cores * smp_num_siblings); + } #endif seq_printf(m, _