From: "Theodore Ts'o" <tytso@mit.edu>
To: "Bhatnagar, Rishabh" <risbhat@amazon.com>
Cc: jack@suse.com, linux-ext4@vger.kernel.org,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"Park, SeongJae" <sjpark@amazon.com>
Subject: Re: Tasks stuck jbd2 for a long time
Date: Tue, 15 Aug 2023 22:28:51 -0400 [thread overview]
Message-ID: <20230816022851.GH2247938@mit.edu> (raw)
In-Reply-To: <153d081d-e738-b916-4f72-364b2c1cc36a@amazon.com>
It would be helpful if you can translate address in the stack trace to
line numbers. See [1] and the script in
./scripts/decode_stacktrace.sh in the kernel sources. (It is
referenced in the web page at [1].)
[1] https://docs.kernel.org/admin-guide/bug-hunting.html
Of course, in order to interpret the line numbers, we'll need a
pointer to the git repo of your kernel sources and the git commit ID
you were using that presumably corresponds to 5.10.184-175.731.amzn2.x86_64.
The stack trace for which I am particularly interested is the one for
the jbd2/md0-8 task, e.g.:
> Not tainted 5.10.184-175.731.amzn2.x86_64 #1
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:jbd2/md0-8 state:D stack: 0 pid: 8068 ppid: 2
> flags:0x00004080
> Call Trace:
> __schedule+0x1f9/0x660
> schedule+0x46/0xb0
> jbd2_journal_commit_transaction+0x35d/0x1880 [jbd2] <--------- line #?
> ? update_load_avg+0x7a/0x5d0
> ? add_wait_queue_exclusive+0x70/0x70
> ? lock_timer_base+0x61/0x80
> ? kjournald2+0xcf/0x360 [jbd2]
> kjournald2+0xcf/0x360 [jbd2]
Most of the other stack traces you refenced are tasks that are waiting
for the transaction commit to complete so they can proceed with some
file system operation. The stack traces which have
start_this_handle() in them are examples of this going on. Stack
traces of tasks that do *not* have start_this_handle() would be
specially interesting.
The question is why is the commit thread blocking, and on what. It
could be blocking on some I/O; or some memory allocation; or waiting
for some process with an open transation handle to close it. The line
number of the jbd2 thread in fs/jbd2/commit.c will give us at least a
partial answer to that question. Of course, then we'll need to answer
the next question --- why is the I/O blocked? Or why is the memory
allocation not completing? etc.
I could make some speculation (such as perhaps some memory allocation
is being made without GFP_NOFS, and this is causing a deadlock between
the memory allocation code which is trying to initiate writeback, but
that is blocked on the transaction commit completing), but without
understanding what the jbd2_journal_commit_transaction() is blocking
at jbd2_journal_commit_transaction+0x35d/0x1880, that would be justa
guess - pure speculation --- without knowing more.
Cheers,
- Ted
next prev parent reply other threads:[~2023-08-16 2:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-15 19:01 Tasks stuck jbd2 for a long time Bhatnagar, Rishabh
2023-08-16 2:28 ` Theodore Ts'o [this message]
2023-08-16 3:57 ` Bhatnagar, Rishabh
2023-08-16 14:53 ` Jan Kara
2023-08-16 18:32 ` Bhatnagar, Rishabh
2023-08-16 21:52 ` Jan Kara
2023-08-16 22:53 ` Bhatnagar, Rishabh
2023-08-17 10:49 ` Jan Kara
2023-08-17 18:59 ` Bhatnagar, Rishabh
2023-08-18 1:19 ` Theodore Ts'o
2023-08-18 1:31 ` Lu, Davina
2023-08-18 2:41 ` Theodore Ts'o
2023-08-21 1:10 ` Lu, Davina
2023-08-21 18:38 ` Theodore Ts'o
2023-08-24 3:52 ` Lu, Davina
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=20230816022851.GH2247938@mit.edu \
--to=tytso@mit.edu \
--cc=gregkh@linuxfoundation.org \
--cc=jack@suse.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=risbhat@amazon.com \
--cc=sjpark@amazon.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).