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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox