From: Andrew Morton <akpm@osdl.org>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: sekharan@us.ibm.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Register atomic_notifiers in atomic context
Date: Tue, 21 Feb 2006 15:28:11 -0800 [thread overview]
Message-ID: <20060221152811.1b065752.akpm@osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0602211045490.5374-100000@iolanthe.rowland.org>
Alan Stern <stern@rowland.harvard.edu> wrote:
>
> Some atomic notifier chains require registrations to take place in atomic
> context. An example is the die_notifier, which on some architectures may
> be accessed very early during the boot-up procedure, before task-switching
> is legal. To accomodate these chains, this patch (as655) replaces the
> mutex in the atomic_notifier_head structure with a spinlock.
I think that's a good change, however x86_64 still crashes.
At great personal expense (ie: using winxp hyperterminal (I now understand
why some of the traces we get are so crappy)) I have a trace. It's still
bugging out in the BUG_ON(!irqs_disabled());
Initializing CPU#0
Kernel command line: root=/dev/sda3 profile=1 ro rhgb earlyprintk=serial,ttyS0,9600 console=ttyS0
kernel profiling enabled (shift: 1)
PID hash table entries: 4096 (order: 12, 131072 bytes)
time.c: Using 14.318180 MHz HPET timer.
time.c: Detected 3400.160 MHz processor.
----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at kernel/posix-cpu-timers.c:1279
invalid opcode: 0000 [1] PREEMPT SMP
last sysfs file:
CPU 0
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.16-rc4-mm1 #147
RIP: 0010:[<ffffffff801401a2>] <ffffffff801401a2>{run_posix_cpu_timers+42}
RSP: 0018:ffffffff805a3dd8 EFLAGS: 00010202
RAX: ffffffff805a3e18 RBX: ffffffff804d6300 RCX: 0000000000000000
RDX: ffffffff80617000 RSI: 0000000000000000 RDI: ffffffff804d6300
RBP: ffffffff805a3e58 R08: 0000000000000003 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffffffff804d6300 R14: 0000000000000000 R15: ffffffff8062be88
FS: 0000000000000000(0000) GS:ffffffff80617000(0000) knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 0000000000101000 CR4: 00000000000006a0
Process swapper (pid: 0, threadinfo ffffffff8062a000, task ffffffff804d6300)
Stack: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
ffff810007042840 0000000000000000 0000000000000000 0000000000000296
ffffffff805a3e18 ffffffff805a3e18
Call Trace: <IRQ> <ffffffff80134211>{update_process_times+110}
<ffffffff80114f3c>{smp_local_timer_interrupt+40} <ffffffff8010d39e>{main_timer_handler+527}
<ffffffff8010d554>{timer_interrupt+21} <ffffffff8014c44f>{handle_IRQ_event+48}
<ffffffff8014c528>{__do_IRQ+163} <ffffffff8010c073>{do_IRQ+50}
<ffffffff80109e36>{ret_from_intr+0} <EOI> <ffffffff803cb47a>{_spin_unlock_irqrestore+17}
<ffffffff8014c85a>{setup_irq+226} <ffffffff80630b5a>{time_init+698}
<ffffffff8062d6f9>{start_kernel+218} <ffffffff8062d286>{_sinittext+646}
Code: 0f 0b 68 42 34 3f 80 c2 ff 04 49 8b 95 50 02 00 00 48 85 d2
RIP <ffffffff801401a2>{run_posix_cpu_timer
RIP <ffffffff801401a2>{run_posix_cpu_timer
BUG: warning at kernel/panic.c:138/panic()
Call Trace: <IRQ> <ffffffff8012ab9d>{panic+557} <ffffffff803cb484>{_spin_unlock_irqrestore+27}
<ffffffff80231aaa>{__up_read+193} <ffffffff8013827d>{blocking_notifier_call_chain+71}
<ffffffff8012d565>{do_exit+158} <ffffffff803cb484>{_spin_unlock_irqrestore+27}
<ffffffff8010b34f>{do_divide_error+0} <ffffffff803cbff1>{do_trap+235}
<ffffffff8010b596>{do_invalid_op+172} <ffffffff801401a2>{run_posix_cpu_timers+42}
<ffffffff8010a821>{error_exit+0} <ffffffff801401a2>{run_posix_cpu_timers+42}
<ffffffff80134211>{update_process_times+110} <ffffffff80114f3c>{smp_local_timer_interrupt+40}
<ffffffff8010d39e>{main_timer_handler+527} <ffffffff8010d554>{timer_interrupt+21}
<ffffffff8014c44f>{handle_IRQ_event+48} <ffffffff8014c528>{__do_IRQ+163}
<ffffffff8010c073>{do_IRQ+50} <ffffffff80109e36>{ret_from_intr+0} <EOI>
<ffffffff803cb47a>{_spin_unlock_irqrestore+17} <ffffffff8014c85a>{setup_irq+226}
<ffffffff80630b5a>{time_init+698} <ffffffff8062d6f9>{start_kernel+218}
<ffffffff8062d286>{_sinittext+646}
next prev parent reply other threads:[~2006-02-21 23:30 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-21 15:54 [PATCH] Register atomic_notifiers in atomic context Alan Stern
2006-02-21 23:28 ` Andrew Morton [this message]
2006-02-22 16:08 ` Alan Stern
2006-02-22 16:12 ` Randy.Dunlap
2006-02-23 2:26 ` Andrew Morton
2006-02-23 17:15 ` Alan Stern
2006-02-23 19:03 ` Andrew Morton
2006-02-23 22:28 ` [PATCH] The idle notifier chain should be atomic Alan Stern
2006-02-23 23:49 ` Andi Kleen
2006-02-24 3:24 ` Alan Stern
2006-02-24 3:27 ` Andi Kleen
2006-02-24 4:04 ` Alan Stern
2006-02-23 22:36 ` [PATCH] Avoid calling down_read and down_write during startup Alan Stern
2006-02-23 22:37 ` Benjamin LaHaise
2006-02-24 0:16 ` Andrew Morton
2006-02-24 3:18 ` Alan Stern
2006-02-24 14:40 ` Benjamin LaHaise
2006-02-24 15:04 ` Alan Stern
2006-02-24 15:15 ` Benjamin LaHaise
2006-02-24 16:44 ` Alan Stern
2006-02-24 16:44 ` Benjamin LaHaise
2006-02-24 17:59 ` Alan Stern
2006-02-24 18:37 ` Benjamin LaHaise
2006-02-24 20:21 ` Alan Stern
2006-02-24 14:39 ` Benjamin LaHaise
2006-02-24 15:03 ` Alan Stern
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=20060221152811.1b065752.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sekharan@us.ibm.com \
--cc=stern@rowland.harvard.edu \
/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