From: "Jayson R. King" <dev@jaysonking.com>
To: LKML <linux-kernel@vger.kernel.org>,
Stable team <stable@kernel.org>,
Greg Kroah-Hartman <gregkh@suse.de>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
Mingming Cao <cmm@us.ibm.com>, "Theodore Ts'o" <tytso@mit.edu>,
linux-ext4@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Jayson King <dev@jaysonking.com>
Subject: [00/11] fix ext4 deadlock on 2.6.27.y
Date: Sat, 27 Feb 2010 00:22:19 -0600 [thread overview]
Message-ID: <4B88BA1B.4050500@jaysonking.com> (raw)
Greetings,
Using the kernel 2.6.27.45 with an ext4 filesystem, the same deadlock as
was reported earlier in kernel bugzilla #12579 can occur. Simply running
"dbench 500" on an ext4 filesystem can cause the deadlock in one to two
minutes.
In later stable kernels, the deadlock was fixed by commit 2acf2c26
("ext4: Implement range_cyclic in ext4_da_writepages instead of
write_cache_pages"). I can confirm that the same commit fixes the
deadlock on 2.6.27.y. However, as the code in ext4_da_writepages is
different in 2.6.27.y than in later kernels, it was necessary to add
some other mainline patches before 2acf2c26.
Alltogether, I've added 11 mainline patches including 2acf2c26 to my
local 2.6.27.y kernel, and confirmed that the deadlock is fixed only
when the patch 2acf2c26 is applied.
The 11 patches are:
Aneesh Kumar K.V (10):
ext4: invalidate pages if delalloc block allocation fails.
ext4: Make sure all the block allocation paths reserve blocks
ext4: Add percpu dirty block accounting.
ext4: Retry block reservation
ext4: Retry block allocation if we have free blocks left
ext4: Use tag dirty lookup during mpage_da_submit_io
vfs: Remove the range_cont writeback mode.
vfs: Add no_nrwrite_index_update writeback control flag
ext4: Fix file fragmentation during large file write.
ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages
Mingming Cao (1):
percpu counter: clean up percpu_counter_sum_and_set()
All will be posted in a reply to this message, in the order that they apply.
I think these patches should be committed to stable 2.6.27.y.
Most of these patches applied cleanly to 2.6.27.45 with no changes other
than some context lines, but two of the patches needed some very slight
modifications. I'll note the changes that I made to them above my
signed-off line for each.
Jayson
next reply other threads:[~2010-02-27 7:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-27 6:22 Jayson R. King [this message]
2010-02-27 6:32 ` [01/11] ext4: invalidate pages if delalloc block allocation fails Jayson R. King
2010-02-27 6:32 ` [02/11] percpu counter: clean up percpu_counter_sum_and_set() Jayson R. King
2010-02-27 6:32 ` [03/11] ext4: Make sure all the block allocation paths reserve blocks Jayson R. King
2010-02-27 6:32 ` [04/11] ext4: Add percpu dirty block accounting Jayson R. King
2010-02-27 6:32 ` [05/11] ext4: Retry block reservation Jayson R. King
2010-02-27 6:32 ` [06/11] ext4: Retry block allocation if we have free blocks left Jayson R. King
2010-02-27 6:33 ` [07/11] ext4: Use tag dirty lookup during mpage_da_submit_io Jayson R. King
2010-02-27 6:33 ` [08/11] vfs: Remove the range_cont writeback mode Jayson R. King
2010-02-27 6:33 ` [09/11] vfs: Add no_nrwrite_index_update writeback control flag Jayson R. King
2010-02-27 6:33 ` [10/11] ext4: Fix file fragmentation during large file write Jayson R. King
2010-02-27 6:33 ` [11/11] ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages Jayson R. King
2010-02-28 3:16 ` [00/11] fix ext4 deadlock on 2.6.27.y Greg KH
2010-03-15 20:09 ` [stable] " Greg KH
2010-03-15 23:17 ` tytso
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=4B88BA1B.4050500@jaysonking.com \
--to=dev@jaysonking.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=cmm@us.ibm.com \
--cc=gregkh@suse.de \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@kernel.org \
--cc=tytso@mit.edu \
/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