All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jurriaan <thunder7@xs4all.nl>
To: Robert Love <rml@tech9.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: pre-empt and smp in 2.5.37 - is it supposed to work? [contains 2 oopses, one in set_cpus_allowed, one in md code]
Date: Fri, 20 Sep 2002 23:02:25 +0200	[thread overview]
Message-ID: <20020920210225.GA526@middle.of.nowhere> (raw)
In-Reply-To: <1032552562.966.832.camel@phantasy>

From: Robert Love <rml@tech9.net>
Date: Fri, Sep 20, 2002 at 04:09:22PM -0400
> On Fri, 2002-09-20 at 16:04, Jurriaan wrote:
> 
> > I get a large screen full of hex addresses even before my framebuffer
> > activates, so I wonder if breakage when using preempt and smp is a known
> > issue in 2.5.37 or not?
> 
> You need this yet-to-be-merged patch.  It should work fine with it.
> 
> It is just an overzealous debugging test..
> 
> 	Robert Love
> 
> diff -urN linux-2.5.37/kernel/sched.c linux/kernel/sched.c
> --- linux-2.5.37/kernel/sched.c	Fri Sep 20 11:20:32 2002
> +++ linux/kernel/sched.c	Fri Sep 20 15:49:05 2002
> @@ -940,8 +940,17 @@
>  	struct list_head *queue;
>  	int idx;
>  
> -	if (unlikely(in_atomic()))
> -		BUG();
> +	/*
> +	 * Test if we are atomic.  Since do_exit() needs to call into
> +	 * schedule() atomically, we ignore that path for now.
> +	 * Otherwise, whine if we are scheduling when we should not be.
> +	 */
> +	if (likely(current->state != TASK_ZOMBIE)) {
> +		if (unlikely(in_atomic())) {
> +			printk(KERN_ERR "bad: scheduling while atomic!\n");
> +			dump_stack();
> +		}
> +	}
>  
>  #if CONFIG_DEBUG_HIGHMEM
>  	check_highmem_ptes();
> 
Well, then, perhaps you're interested in the dump?
I get two 'bad: scheduling while atomic' messages when booting:

ksymoops 2.4.6 on i686 2.5.37.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.5.37/ (default)
     -m /boot/System.map-2.5.37 (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Error (regular_file): read_system_map stat /boot/System.map-2.5.37 failed
ksymoops: No such file or directory
cpu: 0, clocks: 100440, slice: 3043
cpu: 1, clocks: 100440, slice: 3043
CPU 1 IS NOW UP!
c1b69f00 c01165f1 c02db020 c1b68000 c1b69f70 c1b69f78 00000000 00000000 
       00000000 00000000 00000000 00000000 c1b68000 c1b69f78 c0116c3c 00000000 
       c1b68000 c03e24a0 c1b68000 c1b69fa4 00000000 c1b75bc0 c01169fc 00000000 
Call Trace: [<c01165f1>] [<c0116c3c>] [<c01169fc>] [<c01169fc>] [<c01180e6>] 
   [<c0118158>] [<c0118108>] [<c01054f1>] 
c1b67f1c c01165f1 c02db020 c1b66000 c1b67f8c c1b67f94 00000000 00000000 
       00000000 00000000 00000000 00000000 c1b66000 c1b67f94 c0116c3c 00000000 
       c1b66000 c03e24a0 c1b66000 c1b67fc0 00000000 c1b762a0 c01169fc 00000000 
Call Trace: [<c01165f1>] [<c0116c3c>] [<c01169fc>] [<c01169fc>] [<c01180e6>] 
   [<c012031d>] [<c01202cc>] [<c01054f1>] 
Warning (Oops_read): Code line not seen, dumping what data is available


Trace; c01165f1 <schedule+3d/404>
Trace; c0116c3c <wait_for_completion+9c/f8>
Trace; c01169fc <default_wake_function+0/80>
Trace; c01169fc <default_wake_function+0/80>
Trace; c01180e6 <set_cpus_allowed+13a/744>
Trace; c0118158 <set_cpus_allowed+1ac/744>
Trace; c0118108 <set_cpus_allowed+15c/744>
Trace; c01054f1 <enable_hlt+1c9/1d0>
Trace; c01165f1 <schedule+3d/404>
Trace; c0116c3c <wait_for_completion+9c/f8>
Trace; c01169fc <default_wake_function+0/80>
Trace; c01169fc <default_wake_function+0/80>
Trace; c01180e6 <set_cpus_allowed+13a/744>
Trace; c012031d <__run_task_queue+dd/168>
Trace; c01202cc <__run_task_queue+8c/168>
Trace; c01054f1 <enable_hlt+1c9/1d0>

8139too Fast Ethernet driver 0.9.26
Unable to handle kernel NULL pointer dereference at virtual address 0000000e
c024b6b9
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0060:[<c024b6b9>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 0000001e   ebx: fffffffa   ecx: c03675a8   edx: 00000292
esi: fffffffa   edi: ffffffea   ebp: 00002103   esp: f7737eec
ds: 0068   es: 0068   ss: 0068
Stack: 00002103 c024d562 fffffffa 00000931 00002103 00002103 00000000 c024dfd9 
       00002103 00000931 f7ca5e40 00002103 f77a3ee0 00000000 00000000 f778ba00 
       000061b0 00000001 00000000 00000006 00002103 00000000 00000000 00000000 
Call Trace: [<c024d562>] [<c024dfd9>] [<c014a826>] [<c0152d39>] [<c01071eb>] 
Code: 8b 43 14 85 c0 74 10 0f b7 50 10 b2 00 66 0f b6 40 10 09 c2 


>>EIP; c024b6b9 <partition_name+799/aa0>   <=====

>>ecx; c03675a8 <abi_defhandler_libcso+1b0/2a4>
>>esp; f7737eec <ipv4_config+370cd784/3a2a98f8>

Trace; c024d562 <md_print_devices+1ba2/2d24>
Trace; c024dfd9 <md_print_devices+2619/2d24>
Trace; c014a826 <blkdev_put+2ca/318>
Trace; c0152d39 <kill_fasync+4cd/534>
Trace; c01071eb <__read_lock_failed+f0f/1c3c>

Code;  c024b6b9 <partition_name+799/aa0>
00000000 <_EIP>:
Code;  c024b6b9 <partition_name+799/aa0>   <=====
   0:   8b 43 14                  mov    0x14(%ebx),%eax   <=====
Code;  c024b6bc <partition_name+79c/aa0>
   3:   85 c0                     test   %eax,%eax
Code;  c024b6be <partition_name+79e/aa0>
   5:   74 10                     je     17 <_EIP+0x17> c024b6d0 <partition_name+7b0/aa0>
Code;  c024b6c0 <partition_name+7a0/aa0>
   7:   0f b7 50 10               movzwl 0x10(%eax),%edx
Code;  c024b6c4 <partition_name+7a4/aa0>
   b:   b2 00                     mov    $0x0,%dl
Code;  c024b6c6 <partition_name+7a6/aa0>
   d:   66 0f b6 40 10            movzbw 0x10(%eax),%ax
Code;  c024b6cb <partition_name+7ab/aa0>
  12:   09 c2                     or     %eax,%edx


2 warnings and 1 error issued.  Results may not be reliable.

hde3 does no longer exist - I need to redo my configuration, but that
shouldn't oops the kernel.

checking TSC synchronization across 2 CPUs: passed.
Starting migration thread for cpu 0
Bringing up 1
cpu: 1, clocks: 100440, slice: 3043
CPU1<T0:100432,T1:94336,D:10,S:3043,C:100440>
CPU 1 IS NOW UP!
Starting migration thread for cpu 1
bad: scheduling while atomic!
c1b69f00 c01165f1 c02db020 c1b68000 c1b69f70 c1b69f78 00000000 00000000 
       00000000 00000000 00000000 00000000 c1b68000 c1b69f78 c0116c3c 00000000 
       c1b68000 c03e24a0 c1b68000 c1b69fa4 00000000 c1b75bc0 c01169fc 00000000 
Call Trace: [<c01165f1>] [<c0116c3c>] [<c01169fc>] [<c01169fc>] [<c01180e6>] 
   [<c0118158>] [<c0118108>] [<c01054f1>] 
bad: scheduling while atomic!
c1b67f1c c01165f1 c02db020 c1b66000 c1b67f8c c1b67f94 00000000 00000000 
       00000000 00000000 00000000 00000000 c1b66000 c1b67f94 c0116c3c 00000000 
       c1b66000 c03e24a0 c1b66000 c1b67fc0 00000000 c1b762a0 c01169fc 00000000 
Call Trace: [<c01165f1>] [<c0116c3c>] [<c01169fc>] [<c01169fc>] [<c01180e6>] 
   [<c012031d>] [<c01202cc>] [<c01054f1>] 
CPUS done 4294967295
Linux NET4.0 for Linux 2.4
md: could not lock hde3.
md: could not import hde3!
Unable to handle kernel NULL pointer dereference at virtual address 0000000e
 printing eip:
c024b6b9
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0060:[<c024b6b9>]    Not tainted
EFLAGS: 00010286
eax: 0000001e   ebx: fffffffa   ecx: c03675a8   edx: 00000292
esi: fffffffa   edi: ffffffea   ebp: 00002103   esp: f7737eec
ds: 0068   es: 0068   ss: 0068
Process raidstart (pid: 89, threadinfo=f7736000 task=f7aa1520)
Stack: 00002103 c024d562 fffffffa 00000931 00002103 00002103 00000000 c024dfd9 
       00002103 00000931 f7ca5e40 00002103 f77a3ee0 00000000 00000000 f778ba00 
       000061b0 00000001 00000000 00000006 00002103 00000000 00000000 00000000 
Call Trace: [<c024d562>] [<c024dfd9>] [<c014a826>] [<c0152d39>] [<c01071eb>] 

Code: 8b 43 14 85 c0 74 10 0f b7 50 10 b2 00 66 0f b6 40 10 09 c2 
 <6>note: raidstart[89] exited with preempt_count 1
found reiserfs format "3.6" with standard journal

Jurriaan
-- 
I am the special news bulletin that interrupts your favorite show
	Darkwing Duck
GNU/Linux 2.5.37 SMP/ReiserFS 2x1380 bogomips load av: 0.15 0.21 0.20

  reply	other threads:[~2002-09-20 20:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-20 20:04 pre-empt and smp in 2.5.37 - is it supposed to work? Jurriaan
2002-09-20 20:09 ` Robert Love
2002-09-20 21:02   ` Jurriaan [this message]
2002-09-20 21:29     ` pre-empt and smp in 2.5.37 - is it supposed to work? [contains 2 oopses, one in set_cpus_allowed, one in md code] Robert Love
2002-09-21  5:43       ` Jurriaan

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=20020920210225.GA526@middle.of.nowhere \
    --to=thunder7@xs4all.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rml@tech9.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.