From: Chris Mason <mason@suse.com>
To: Rob Mueller <robm@fastmail.fm>, wli@holomorphy.com, akpm@osdl.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: Processes stuck in unkillable D state (now seen in 2.6.7-mm6)
Date: Tue, 20 Jul 2004 15:51:52 -0400 [thread overview]
Message-ID: <1090353111.23350.8.camel@watt.suse.com> (raw)
In-Reply-To: <009e01c46849$f2e85430$9aafc742@ROBMHP>
On Mon, 2004-07-12 at 15:53, Rob Mueller wrote:
> Here's the relevant stuck proc.
>
> imapd D E17BE6E0 0 3761 1 10291 (NOTLB)
> e11c3bc8 00000086 00000020 e17be6e0 c1372d20 00000246 00000220 f7e12380
> 00000020 c0136667 c42c6da0 00000001 00000d74 bbfe8a6a 0000040d
> c42c6da0
> f7f91140 e17be6e0 e17be890 f78cd9cc 00000003 f78cd9cc f78cd9cc
> c025d2cc
> Call Trace:
> [<c0136667>] kmem_cache_alloc+0x57/0x70
> [<c025d2cc>] generic_unplug_device+0x2c/0x40
> [<c037a148>] io_schedule+0x28/0x40
> [<c012e03c>] __lock_page+0xbc/0xe0
> [<c012dd70>] page_wake_function+0x0/0x50
> [<c012dd70>] page_wake_function+0x0/0x50
> [<c012f061>] filemap_nopage+0x231/0x360
> [<c013dc18>] do_no_page+0xb8/0x3a0
> [<c013ba7b>] pte_alloc_map+0xdb/0xf0
> [<c013e0ae>] handle_mm_fault+0xbe/0x1a0
> [<c025d292>] __generic_unplug_device+0x32/0x40
> [<c0112af2>] do_page_fault+0x172/0x5ec
> [<c014cab0>] bh_wake_function+0x0/0x40
> [<c014cab0>] bh_wake_function+0x0/0x40
> [<c018ec9f>] reiserfs_prepare_file_region_for_write+0x94f/0x9b0
> [<c0112980>] do_page_fault+0x0/0x5ec
> [<c0104b19>] error_code+0x2d/0x38
> [<c018dc0f>] reiserfs_copy_from_user_to_file_region+0x8f/0x100
> [<c018f2b1>] reiserfs_file_write+0x5b1/0x750
> [<c0186675>] reiserfs_link+0xb5/0x190
> [<c0186719>] reiserfs_link+0x159/0x190
> [<c016134c>] dput+0x1c/0x1b0
> [<c016134c>] dput+0x1c/0x1b0
> [<c01581a0>] path_release+0x10/0x40
> [<c015a9bc>] sys_link+0xcc/0xe0
> [<c014bb9a>] vfs_write+0xaa/0xe0
> [<c014b610>] default_llseek+0x0/0x110
> [<c014bc4f>] sys_write+0x2f/0x50
> [<c010406b>] syscall_call+0x7/0xb
>
> Is that in lock_page again?
>
> Hopefully there's some helpful information there. If the dump there isn't
> complete, can you give me an idea why it might not be? I've set the kernel
> buffer to 17 (128k), and the proc list was definitely small enough to fit in
> the buffer. When I did "dmesg -s 1000000 > foo", the first part of the file
> was still the original boot sequence. Any other suggestions on what to do?
Ugh, so the call path here is:
reiserfs_file_write -> start a transaction
copy_from_user -> fault in the page
page fault handler -> lock page
This means we're trying to lock a page with a running transaction, and
that's not allowed, since some other process on the box most likely has
that page locked and is trying to start a transaction.
That makes for 3 different deadlocks in this exact same call path
(dirty_inode, lock_page and kmap), and my patch for it has major
problems. So, I'll talk things over with everyone during OLS and try to
work out a proper fix.
Sorry Rob, this one is non-trivial.
-chris
next prev parent reply other threads:[~2004-07-20 19:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-08 22:15 Processes stuck in unkillable D state (now seen in 2.6.7-mm6) Rob Mueller
2004-07-09 12:58 ` Chris Mason
2004-07-12 19:53 ` Rob Mueller
2004-07-12 20:11 ` William Lee Irwin III
2004-07-12 20:14 ` Rob Mueller
2004-07-12 20:25 ` William Lee Irwin III
2004-07-20 19:51 ` Chris Mason [this message]
2004-07-20 21:19 ` Rob Mueller
2004-07-15 16:12 ` Processes stuck in unkillable D state (now seen in 2.6.8-rc1) Rob Mueller
-- strict thread matches above, loose matches on Subject: below --
2004-07-09 9:52 Processes stuck in unkillable D state (now seen in 2.6.7-mm6) Rob Mueller
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=1090353111.23350.8.camel@watt.suse.com \
--to=mason@suse.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robm@fastmail.fm \
--cc=wli@holomorphy.com \
/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.