From: Peter Williams <pwil3058@bigpond.net.au>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Kumar Gala <galak@kernel.crashing.org>,
Alexey Dobriyan <adobriyan@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
"Paul E. McKenney" <paulmck@us.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: Badness in local_bh_enable by [PATCH] fix uidhash_lock <-> RCU deadlock
Date: Wed, 01 Feb 2006 13:41:23 +1100 [thread overview]
Message-ID: <43E01FD3.3080100@bigpond.net.au> (raw)
In-Reply-To: <Pine.LNX.4.44.0601311957150.32404-100000@gate.crashing.org>
Kumar Gala wrote:
> I'm also seeing a similar issue on an embedded PowerPC. Makes my serial
> port seem to lose characters or require extra ones. Through a slightly
> different path than Alexey:
>
> Badness in local_bh_enable at kernel/softirq.c:140
> Call Trace:
> [C0673D10] [C0007620] show_stack+0x40/0x194 (unreliable)
> [C0673D40] [C000C21C] program_check_exception+0x3c4/0x518
> [C0673D80] [C000D588] ret_from_except_full+0x0/0x4c
> --- Exception: 700 at local_bh_enable+0x1c/0x84
> LR = free_uid+0x5c/0xb4
> [C0673E40] [00800144] 0x800144 (unreliable)
> [C0673E50] [C0025540] free_uid+0x5c/0xb4
> [C0673E60] [C00259FC] flush_sigqueue+0x84/0xb0
> [C0673E80] [C0025E10] __exit_signal+0x214/0x250
> [C0673EA0] [C001A6A0] release_task+0x94/0x1d0
> [C0673EC0] [C001D164] do_wait+0xc44/0xff4
> [C0673F40] [C000CEE8] ret_from_syscall+0x0/0x38
> --- Exception: c01 at 0xfe68680
> LR = 0x10023c28
>
> - kumar
>
>
>>On Wed, 1 Feb 2006, Alexey Dobriyan wrote:
>>
>>>Flooding boot logs with
>>>
>>>Badness in local_bh_enable at kernel/softirq.c:140
>>
>>Ok, looks bad. It's through
>>
>> __dequeue_signal():
>> collect_signal():
>> __sigqueue_free():
>> free_uid()
>>
>>where we hold the sigqueue lock. We do _not_ want to do BH processing
>>there with the lock held and interrupts disabled, so the warning is
>>correct, and that uidhash_lock patch potentially causes more problems than
>>it fixes.
>>
>>Perhaps the easiest solution is to just make them irq-safe instead
>>of bh-safe? An alternative might be to make __sigqueue_free() do its work
>>through RCU callbacks too, but that seems wrong.
>>
>>Comments? Ingo?
>>
>> Linus
More data points. I'm seeing two slightly different to each other (one
has a preempt_schedule() in the middle of the call sequence) and
different to those already reported versions of this problem on a Pentium 4:
Badness in local_bh_enable at kernel/softirq.c:140
[<c011928f>] local_bh_enable+0x7e/0x88
[<c011f01a>] __dequeue_signal+0x164/0x1d6
[<c011f104>] dequeue_signal+0x78/0xc1
[<c011ffc3>] get_signal_to_deliver+0x5c/0x55e
[<c0148b88>] do_wp_page+0x20e/0x353
[<c01023e5>] do_notify_resume+0x8e/0x6a1
[<c036fdd7>] notifier_call_chain+0x27/0x40
[<c011ea10>] sigprocmask+0x62/0xd8
[<c011eb59>] sys_rt_sigprocmask+0xd3/0xf8
[<c0102bb2>] work_notifysig+0x13/0x19
Badness in local_bh_enable at kernel/softirq.c:140
[<c011928f>] local_bh_enable+0x7e/0x88
[<c011f01a>] __dequeue_signal+0x164/0x1d6
[<c011f104>] dequeue_signal+0x78/0xc1
[<c011ffc3>] get_signal_to_deliver+0x5c/0x55e
[<c0148b88>] do_wp_page+0x20e/0x353
[<c01023e5>] do_notify_resume+0x8e/0x6a1
[<c036cc83>] preempt_schedule+0x4a/0x56
[<c036fdd7>] notifier_call_chain+0x27/0x40
[<c011ea10>] sigprocmask+0x62/0xd8
[<c011eb59>] sys_rt_sigprocmask+0xd3/0xf8
[<c0102bb2>] work_notifysig+0x13/0x19
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
prev parent reply other threads:[~2006-02-01 2:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-31 23:09 Badness in local_bh_enable by [PATCH] fix uidhash_lock <-> RCU deadlock Alexey Dobriyan
2006-01-31 23:20 ` Linus Torvalds
2006-02-01 1:59 ` Kumar Gala
2006-02-01 2:41 ` Peter Williams [this message]
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=43E01FD3.3080100@bigpond.net.au \
--to=pwil3058@bigpond.net.au \
--cc=adobriyan@gmail.com \
--cc=galak@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulmck@us.ibm.com \
--cc=torvalds@osdl.org \
/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.