mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
To: Andrew Morton <akpm@osdl.org>
Cc: earny@net4u.de, list-lkml@net4u.de, linux-kernel@vger.kernel.org,
	Richard Henderson <rth@twiddle.net>
Subject: Re: ALPHA 2.6.17-rc5 AIC7###: does not boot
Date: Thu, 1 Jun 2006 20:16:19 +0400	[thread overview]
Message-ID: <20060601201619.A978@jurassic.park.msu.ru> (raw)
In-Reply-To: <20060531154648.53539006.akpm@osdl.org>; from akpm@osdl.org on Wed, May 31, 2006 at 03:46:48PM -0700

On Wed, May 31, 2006 at 03:46:48PM -0700, Andrew Morton wrote:
> But I don't recall us making any changes in the Alpha interrupt-management
> code post-2.6.16.  Perhaps it was PCI changes which introduced this
> regression.

No. It looks like SMP is screwed up again. And some interrupts don't work
as they get routed to inactive CPU.

Ernst, please try this patch.

Ivan.

--- 2.6.17-rc5/arch/alpha/kernel/alpha_ksyms.c	Thu Jun  1 18:11:41 2006
+++ linux/arch/alpha/kernel/alpha_ksyms.c	Thu Jun  1 18:13:38 2006
@@ -182,7 +182,6 @@ EXPORT_SYMBOL(smp_num_cpus);
 EXPORT_SYMBOL(smp_call_function);
 EXPORT_SYMBOL(smp_call_function_on_cpu);
 EXPORT_SYMBOL(_atomic_dec_and_lock);
-EXPORT_SYMBOL(cpu_present_mask);
 #endif /* CONFIG_SMP */
 
 /*
--- 2.6.17-rc5/arch/alpha/kernel/smp.c	Thu Jun  1 18:11:41 2006
+++ linux/arch/alpha/kernel/smp.c	Thu Jun  1 18:18:44 2006
@@ -68,7 +68,6 @@ enum ipi_message_type {
 static int smp_secondary_alive __initdata = 0;
 
 /* Which cpus ids came online.  */
-cpumask_t cpu_present_mask;
 cpumask_t cpu_online_map;
 
 EXPORT_SYMBOL(cpu_online_map);
@@ -439,7 +438,7 @@ setup_smp(void)
 			if ((cpu->flags & 0x1cc) == 0x1cc) {
 				smp_num_probed++;
 				/* Assume here that "whami" == index */
-				cpu_set(i, cpu_present_mask);
+				cpu_set(i, cpu_present_map);
 				cpu->pal_revision = boot_cpu_palrev;
 			}
 
@@ -450,11 +449,10 @@ setup_smp(void)
 		}
 	} else {
 		smp_num_probed = 1;
-		cpu_set(boot_cpuid, cpu_present_mask);
 	}
 
-	printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n",
-	       smp_num_probed, cpu_possible_map.bits[0]);
+	printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_map = %lx\n",
+	       smp_num_probed, cpu_present_map.bits[0]);
 }
 
 /*
@@ -473,7 +471,7 @@ smp_prepare_cpus(unsigned int max_cpus)
 
 	/* Nothing to do on a UP box, or when told not to.  */
 	if (smp_num_probed == 1 || max_cpus == 0) {
-		cpu_present_mask = cpumask_of_cpu(boot_cpuid);
+		cpu_present_map = cpumask_of_cpu(boot_cpuid);
 		printk(KERN_INFO "SMP mode deactivated.\n");
 		return;
 	}
@@ -486,10 +484,6 @@ smp_prepare_cpus(unsigned int max_cpus)
 void __devinit
 smp_prepare_boot_cpu(void)
 {
-	/*
-	 * Mark the boot cpu (current cpu) as online
-	 */ 
-	cpu_set(smp_processor_id(), cpu_online_map);
 }
 
 int __devinit
--- 2.6.17-rc5/arch/alpha/kernel/process.c	Mon Mar 20 08:53:29 2006
+++ linux/arch/alpha/kernel/process.c	Thu Jun  1 18:13:38 2006
@@ -94,7 +94,7 @@ common_shutdown_1(void *generic_ptr)
 	if (cpuid != boot_cpuid) {
 		flags |= 0x00040000UL; /* "remain halted" */
 		*pflags = flags;
-		clear_bit(cpuid, &cpu_present_mask);
+		cpu_clear(cpuid, cpu_present_map);
 		halt();
 	}
 #endif
@@ -120,8 +120,8 @@ common_shutdown_1(void *generic_ptr)
 
 #ifdef CONFIG_SMP
 	/* Wait for the secondaries to halt. */
-	cpu_clear(boot_cpuid, cpu_possible_map);
-	while (cpus_weight(cpu_possible_map))
+	cpu_clear(boot_cpuid, cpu_present_map);
+	while (cpus_weight(cpu_present_map))
 		barrier();
 #endif
 
--- 2.6.17-rc5/arch/alpha/kernel/sys_titan.c	Mon Mar 20 08:53:29 2006
+++ linux/arch/alpha/kernel/sys_titan.c	Thu Jun  1 18:13:38 2006
@@ -66,7 +66,7 @@ titan_update_irq_hw(unsigned long mask)
 	register int bcpu = boot_cpuid;
 
 #ifdef CONFIG_SMP
-	cpumask_t cpm = cpu_present_mask;
+	cpumask_t cpm = cpu_present_map;
 	volatile unsigned long *dim0, *dim1, *dim2, *dim3;
 	unsigned long mask0, mask1, mask2, mask3, dummy;
 
--- 2.6.17-rc5/include/asm-alpha/smp.h	Mon Mar 20 08:53:29 2006
+++ linux/include/asm-alpha/smp.h	Thu Jun  1 18:13:38 2006
@@ -45,10 +45,8 @@ extern struct cpuinfo_alpha cpu_data[NR_
 #define hard_smp_processor_id()	__hard_smp_processor_id()
 #define raw_smp_processor_id()	(current_thread_info()->cpu)
 
-extern cpumask_t cpu_present_mask;
-extern cpumask_t cpu_online_map;
 extern int smp_num_cpus;
-#define cpu_possible_map	cpu_present_mask
+#define cpu_possible_map	cpu_present_map
 
 int smp_call_function_on_cpu(void (*func) (void *info), void *info,int retry, int wait, cpumask_t cpu);
 

  reply	other threads:[~2006-06-01 16:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-30 16:34 Ernst Herzberg
2006-05-31 22:46 ` Andrew Morton
2006-06-01 16:16   ` Ivan Kokshaysky [this message]
2006-06-01 17:11     ` Ernst Herzberg
2006-06-01 17:33       ` Andrew Morton
2006-06-01 21:13         ` Ivan Kokshaysky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060601201619.A978@jurassic.park.msu.ru \
    --to=ink@jurassic.park.msu.ru \
    --cc=akpm@osdl.org \
    --cc=earny@net4u.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=list-lkml@net4u.de \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®