|
@@ -417,34 +417,6 @@ mark_bsp_online (void)
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_SMP
|
|
|
|
-static void __init
|
|
|
|
-check_for_logical_procs (void)
|
|
|
|
-{
|
|
|
|
- pal_logical_to_physical_t info;
|
|
|
|
- s64 status;
|
|
|
|
-
|
|
|
|
- status = ia64_pal_logical_to_phys(0, &info);
|
|
|
|
- if (status == -1) {
|
|
|
|
- printk(KERN_INFO "No logical to physical processor mapping "
|
|
|
|
- "available\n");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- if (status) {
|
|
|
|
- printk(KERN_ERR "ia64_pal_logical_to_phys failed with %ld\n",
|
|
|
|
- status);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- /*
|
|
|
|
- * Total number of siblings that BSP has. Though not all of them
|
|
|
|
- * may have booted successfully. The correct number of siblings
|
|
|
|
- * booted is in info.overview_num_log.
|
|
|
|
- */
|
|
|
|
- smp_num_siblings = info.overview_tpc;
|
|
|
|
- smp_num_cpucores = info.overview_cpp;
|
|
|
|
-}
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
static __initdata int nomca;
|
|
static __initdata int nomca;
|
|
static __init int setup_nomca(char *s)
|
|
static __init int setup_nomca(char *s)
|
|
{
|
|
{
|
|
@@ -540,15 +512,6 @@ setup_arch (char **cmdline_p)
|
|
|
|
|
|
#ifdef CONFIG_SMP
|
|
#ifdef CONFIG_SMP
|
|
cpu_physical_id(0) = hard_smp_processor_id();
|
|
cpu_physical_id(0) = hard_smp_processor_id();
|
|
- check_for_logical_procs();
|
|
|
|
- if (smp_num_cpucores > 1)
|
|
|
|
- printk(KERN_INFO
|
|
|
|
- "cpu package is Multi-Core capable: number of cores=%d\n",
|
|
|
|
- smp_num_cpucores);
|
|
|
|
- if (smp_num_siblings > 1)
|
|
|
|
- printk(KERN_INFO
|
|
|
|
- "cpu package is Multi-Threading capable: number of siblings=%d\n",
|
|
|
|
- smp_num_siblings);
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
cpu_init(); /* initialize the bootstrap CPU */
|
|
cpu_init(); /* initialize the bootstrap CPU */
|
|
@@ -661,12 +624,13 @@ show_cpuinfo (struct seq_file *m, void *v)
|
|
lpj*HZ/500000, (lpj*HZ/5000) % 100);
|
|
lpj*HZ/500000, (lpj*HZ/5000) % 100);
|
|
#ifdef CONFIG_SMP
|
|
#ifdef CONFIG_SMP
|
|
seq_printf(m, "siblings : %u\n", cpus_weight(cpu_core_map[cpunum]));
|
|
seq_printf(m, "siblings : %u\n", cpus_weight(cpu_core_map[cpunum]));
|
|
|
|
+ if (c->socket_id != -1)
|
|
|
|
+ seq_printf(m, "physical id: %u\n", c->socket_id);
|
|
if (c->threads_per_core > 1 || c->cores_per_socket > 1)
|
|
if (c->threads_per_core > 1 || c->cores_per_socket > 1)
|
|
seq_printf(m,
|
|
seq_printf(m,
|
|
- "physical id: %u\n"
|
|
|
|
- "core id : %u\n"
|
|
|
|
- "thread id : %u\n",
|
|
|
|
- c->socket_id, c->core_id, c->thread_id);
|
|
|
|
|
|
+ "core id : %u\n"
|
|
|
|
+ "thread id : %u\n",
|
|
|
|
+ c->core_id, c->thread_id);
|
|
#endif
|
|
#endif
|
|
seq_printf(m,"\n");
|
|
seq_printf(m,"\n");
|
|
|
|
|
|
@@ -778,6 +742,9 @@ identify_cpu (struct cpuinfo_ia64 *c)
|
|
c->socket_id = -1;
|
|
c->socket_id = -1;
|
|
|
|
|
|
identify_siblings(c);
|
|
identify_siblings(c);
|
|
|
|
+
|
|
|
|
+ if (c->threads_per_core > smp_num_siblings)
|
|
|
|
+ smp_num_siblings = c->threads_per_core;
|
|
#endif
|
|
#endif
|
|
c->ppn = cpuid.field.ppn;
|
|
c->ppn = cpuid.field.ppn;
|
|
c->number = cpuid.field.number;
|
|
c->number = cpuid.field.number;
|