From: David Mosberger <davidm@napali.hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: Oops in pdflush
Date: Sat, 28 Feb 2004 06:52:46 +0000 [thread overview]
Message-ID: <16448.15038.132551.960807@napali.hpl.hp.com> (raw)
In-Reply-To: <je4qtl7u44.fsf@sykes.suse.de>
>>>>> On Sat, 28 Feb 2004 00:58:20 +1100, Keith Owens <kaos@sgi.com> said:
Keith> On Fri, 27 Feb 2004 11:16:03 +0100,
Keith> Andreas Schwab <schwab@suse.de> wrote:
>> pdflush[18140]: Oops 11012296146944 [1]
>> Pid: 18140, CPU 1, comm: pdflush
>> psr : 0000121008026018 ifs : 8000000000000590 ip : [<a00000010046e0d1>] Not tainted
>> ip is at nf_iterate+0x111/0x240
>> unwind.init_frame_info:
>> task 0xe0000000110e0000
>> rbs = [0xe0000000110e0ef0-0xe0000000110e6ac8)
>> stk = [0xe0000000110e6ac8-0xe0000000110e8000)
>> pr 0x82aa6aa6a55596a7
>> sw 0xe0000000110e6160
>> sp 0xe0000000110e6ac8
Keith> Ouch. rbs and stack have collided, kernel stack overflow. rbs shows
Keith> a normal start, then it loops with the same data over and over again
So if I'm reading this right, we get a case that looks like unbounded
recursion:
pdflush -> start_one_pdflush_thread -> kernel_thread -> pdflush ...
Except, I don't think this is real recursion. Instead, we effectively
get a (potentially unbounded) sequence of one kernel thread creating
another thread. Each new kernel thread gets nested one deeper,
eventually leading to a stack overflow...
Argh, this wasn't supposed to happen! It's not entirely trivial to
fix. Obviously we could try to modify copy_thread() so it resets the
stack to the top, but in doing so, we still must preserve the stack
frame of kernel_thread(). That wouldn't be a problem---if only we
knew how big that frame was! (Well, OK, then there would also be RNaT
slots to worry about, but that could be handled by ensuring that the
new and old stacks are congruent in that regard).
Hmmh, I think perhaps the right way to fix this is to use a separate
continuation function, which will then take care of doing the
child-specific actions. Let me see if I can come up with something.
Oh, well, now I'm finding that this is of course exactly how Linus
changed the x86 code some 19 months ago (for other reasons though, it
seems):
http://linux.bkbits.net:8080/linux-2.5/diffs/arch/i386/kernel/process.c@1.19.1.11
Say, Andreas, did you by chance have 3 disk drives in your Tiger?
Does it boot fine if you remove one or two of the disks?
--david
next prev parent reply other threads:[~2004-02-28 6:52 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-20 13:34 Oops in pdflush Andreas Schwab
2004-02-20 14:18 ` Keith Owens
2004-02-20 14:52 ` Andreas Schwab
2004-02-20 16:41 ` David Mosberger
2004-02-20 17:11 ` Andreas Schwab
2004-02-20 23:09 ` David Mosberger
2004-02-22 13:58 ` Andreas Schwab
2004-02-22 14:08 ` Keith Owens
2004-02-22 16:52 ` Andreas Schwab
2004-02-24 1:54 ` Grant Grundler
2004-02-27 10:16 ` Andreas Schwab
2004-02-27 13:58 ` Keith Owens
2004-02-28 6:52 ` David Mosberger [this message]
2004-02-28 9:39 ` David Mosberger
2004-02-28 9:45 ` Keith Owens
2004-02-28 10:00 ` Keith Owens
2004-02-28 10:20 ` David Mosberger
2004-02-28 10:23 ` Andrew Morton
2004-02-28 12:00 ` Andrew Morton
2004-02-28 14:47 ` Keith Owens
2004-02-28 14:55 ` Andreas Schwab
2004-02-28 18:26 ` David Mosberger
2004-02-28 23:59 ` Keith Owens
2004-02-29 3:44 ` Keith Owens
2004-02-29 5:27 ` Andrew Morton
2004-03-01 10:34 ` Andreas Schwab
2004-03-01 19:46 ` David Mosberger
2006-09-06 13:39 ` D.N.Jagannathan
2006-09-06 17:44 ` Chen, Kenneth W
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=16448.15038.132551.960807@napali.hpl.hp.com \
--to=davidm@napali.hpl.hp.com \
--cc=linux-ia64@vger.kernel.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