mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Theurer <habanero@us.ibm.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
	linux-kernel@vger.kernel.org, Rick Lindsley <ricklind@us.ibm.com>
Subject: Re: [patch] HT scheduler, sched-2.5.68-B2
Date: Thu, 24 Apr 2003 09:23:15 -0500	[thread overview]
Message-ID: <200304240923.18754.habanero@us.ibm.com> (raw)
In-Reply-To: <200304240843.h3O8h4902765@owlet.beaverton.ibm.com>

BTW, I am getting an oops on boot with the A9 version in wake_up_cpu:

Unable to handle kernel NULL pointer dereference at virtual address 00000004
c011910f
*pde = 00104001
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c011910f>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010046
eax: 00000000   ebx: f23f4d40   ecx: 00000000   edx: 424614f0
esi: c03f8f80   edi: c03f9938   ebp: f2d87f2c   esp: f2d87f0c
ds: 007b   es: 007b   ss: 0068
Stack: 00000000 00000000 00000000 00000001 00000000 f23f4d40 c03f8f80 c03f9938
       f2d87f78 c01195e1 c03f8f80 c03f9938 f23f5330 f2d87f58 f2d8d628 00000000
       c03f8f80 00000002 00000000 00000086 00000020 f23f5330 f2d8d330 c0396fc0
Call Trace: [<c01195e1>]  [<c011af50>]  [<c011b025>]  [<c011c5aa>]  
[<c010a9ba>]
  [<c011c300>]  [<c0108b25>]
code: 8b 41 04 ba 03 00 00 00 8b 58 08 c1 eb 10 83 e3 01 f0 0f ab

>>EIP; c011910f <wake_up_cpu+3f/310>   <=====
Trace; c01195e1 <try_to_wake_up+201/310>
Trace; c011af50 <__wake_up_common+40/60>
Trace; c011b025 <complete+25/40>
Trace; c011c5aa <migration_task+2aa/2b0>
Trace; c010a9ba <work_resched+5/16>
Trace; c011c300 <migration_task+0/2b0>
Trace; c0108b25 <kernel_thread_helper+5/10>
Code;  c011910f <wake_up_cpu+3f/310>
00000000 <_EIP>:
Code;  c011910f <wake_up_cpu+3f/310>   <=====
   0:   8b 41 04                  mov    0x4(%ecx),%eax   <=====
Code;  c0119112 <wake_up_cpu+42/310>
   3:   ba 03 00 00 00            mov    $0x3,%edx
Code;  c0119117 <wake_up_cpu+47/310>
   8:   8b 58 08                  mov    0x8(%eax),%ebx
Code;  c011911a <wake_up_cpu+4a/310>
   b:   c1 eb 10                  shr    $0x10,%ebx
Code;  c011911d <wake_up_cpu+4d/310>
   e:   83 e3 01                  and    $0x1,%ebx
Code;  c0119120 <wake_up_cpu+50/310>
  11:   f0 0f ab 00               lock bts %eax,(%eax)


One thing to note, I am using a patch to skip cpus on boot by specifying their 
apicid.  I have used this patch without any problems for quite a while, but 
for some reason with the HT patch I get the oops.  I am using this patch so I 
can boot only the processors in the first node on an x440:

boot param used: skip_apicids=32,33,34,35,48,49,50,51
(all of the apicids in the 2nd node)

patch:
diff -Naur linux-2.5.65/arch/i386/kernel/smpboot.c 
linux-2.5.65-skip-apic/arch/i386/kernel/smpboot.c
--- linux-2.5.65/arch/i386/kernel/smpboot.c	Mon Mar 17 13:44:05 2003
+++ linux-2.5.65-skip-apic/arch/i386/kernel/smpboot.c	Fri Mar 21 09:04:03 2003
@@ -82,6 +82,10 @@
 extern unsigned char trampoline_end  [];
 static unsigned char *trampoline_base;
 
+/* used to selectively not boot certain CPUs with apicids */
+extern int skip_apic_ids[NR_CPUS];
+
+
 /*
  * Currently trivial. Write the real->protected mode
  * bootstrap into the page concerned. The caller
@@ -939,6 +943,16 @@
 
 int cpu_sibling_map[NR_CPUS] __cacheline_aligned;
 
+static int skip_this_apicid(int apicid)
+{
+	int i;
+
+	for (i = 1; i < (skip_apic_ids[0] + 1); i++) 
+		if (apicid == skip_apic_ids[i]) 
+			return 1;
+	return 0;
+}
+
 static void __init smp_boot_cpus(unsigned int max_cpus)
 {
 	int apicid, cpu, bit;
@@ -1036,6 +1050,8 @@
 			continue;
 		if (max_cpus <= cpucount+1)
 			continue;
+		if (skip_this_apicid(apicid))
+			continue;
 
 		if (do_boot_cpu(apicid))
 			printk("CPU #%d not responding - cannot use it.\n",
diff -Naur linux-2.5.65/init/main.c linux-2.5.65-skip-apic/init/main.c
--- linux-2.5.65/init/main.c	Mon Mar 17 13:43:44 2003
+++ linux-2.5.65-skip-apic/init/main.c	Fri Mar 21 09:04:18 2003
@@ -113,6 +113,8 @@
 
 /* Setup configured maximum number of CPUs to activate */
 static unsigned int max_cpus = NR_CPUS;
+/* Don't boot apicids in this list */
+int skip_apic_ids[NR_CPUS];
 
 /*
  * Setup routine for controlling SMP activation
@@ -140,6 +142,18 @@
 
 __setup("maxcpus=", maxcpus);
 
+static int __init skip_apicids(char *str)
+{
+	int i;
+
+	get_options(str, NR_CPUS, skip_apic_ids);
+	for (i = 1; i < (skip_apic_ids[0]+1); i++)
+		printk( "CPU with apicid %i will not be booted\n", skip_apic_ids[i]);
+	return 1;
+}
+
+__setup("skip_apicids=", skip_apicids);
+
 static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
 char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
 


  reply	other threads:[~2003-04-24 14:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-23 16:23 Ingo Molnar
2003-04-23 17:47 ` Martin J. Bligh
2003-04-23 17:53   ` Andrew Theurer
2003-04-23 18:43     ` Martin J. Bligh
2003-04-23 20:14       ` Andrew Theurer
2003-04-24  8:43         ` Rick Lindsley
2003-04-24 14:23           ` Andrew Theurer [this message]
2003-04-23 22:38       ` Martin J. Bligh
2003-04-24 21:29         ` Bill Davidsen
2003-04-24 22:39           ` Martin J. Bligh

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=200304240923.18754.habanero@us.ibm.com \
    --to=habanero@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=mingo@elte.hu \
    --cc=ricklind@us.ibm.com \
    /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®