xfs
[Top] [All Lists]

xfs_iomap_write_unwritten stuck in congestion_wait?

To: xfs@xxxxxxxxxxx
Subject: xfs_iomap_write_unwritten stuck in congestion_wait?
From: Peter Watkins <treestem@xxxxxxxxx>
Date: Wed, 3 Apr 2013 15:33:11 -0400
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=a8PtY9q2GS+0EqB2NbSX+kdsrYpNSJntR5DjNMz9tis=; b=MlkWZusGzJHPK8xYFizbeZdrdV2ebOLhLYnuYzmLcGxcKbqH1707XrofmA2aHtP/6m XBYhuX+/rG4z/wmDN4U/KQkyg3ArplZShLn3jlvEss3Rl5Tz4c5tdJUcQnzyLGe80+af VR+c7982+M7AODupBvMH8oaK0GiTejF34oD2PQ21rmIf0gW0WILLskBlawU75KTbsCDU 53LeKWkE+Ee6ZWA/HSn1/tdb1TL3DXPLBmAMpdj1sNifuClT9htfPLvJaH+aMRfVHyG1 vZgrCt98v9k0CM3uSBGKa5gXcCsK28iPd6AQ95WRvYgoGqfWigFU27oskzJNnfHpXqp2 41RQ==
Hello,

Wondering if anyone has a suggestion for when
xfs_iomap_write_unwritten gets into congestion_wait.

In this case the system has almost half of normal zone pages in
NR_WRITEBACK with pretty much everybody held up in either
congestion_wait or balance_dirty_pages.

Since there are some free pages, seems like we'd be better off just
using a little more memory to finish this IO and in turn reduce pages
under write-back and add to free memory, rather than holding up here.
So maybe PF_MEMALLOC?

It also looks like this path allocates log vectors with KM_SLEEP but
lv_buf's with KM_SLEEP|KM_NOFS. Why is that?

PID: 7011   TASK: ffff880226282040  CPU: 2   COMMAND: "xfsconvertd/2"
 #0 [ffff88022629b550] schedule at ffffffff814f5862
 #1 [ffff88022629b618] schedule_timeout at ffffffff814f66a2
 #2 [ffff88022629b6c8] io_schedule_timeout at ffffffff814f532f
 #3 [ffff88022629b6f8] congestion_wait at ffffffff81137450
 #4 [ffff88022629b758] throttle_vm_writeout at ffffffff81128c78
 #5 [ffff88022629b798] shrink_zone at ffffffff8112ea3b
 #6 [ffff88022629b848] do_try_to_free_pages at ffffffff8112ecfe
 #7 [ffff88022629b8d8] try_to_free_pages at ffffffff8112f30d
 #8 [ffff88022629b988] __alloc_pages_nodemask at ffffffff81126797
 #9 [ffff88022629ba98] kmem_getpages at ffffffff8115db12
#10 [ffff88022629bac8] fallback_alloc at ffffffff8115e72a
#11 [ffff88022629bb48] ____cache_alloc_node at ffffffff8115e4a9
#12 [ffff88022629bba8] __kmalloc at ffffffff8115f0d9
#13 [ffff88022629bbf8] kmem_alloc at ffffffffa02d69f7
#14 [ffff88022629bc38] xfs_log_commit_cil at ffffffffa02c3ebd
#15 [ffff88022629bcb8] _xfs_trans_commit at ffffffffa02cfe99
#16 [ffff88022629bd18] xfs_iomap_write_unwritten at ffffffffa02bce01
#17 [ffff88022629be18] xfs_end_io at ffffffffa02d72bb
#18 [ffff88022629be38] worker_thread at ffffffff8108c6a0
#19 [ffff88022629bee8] kthread at ffffffff81091ca6
#20 [ffff88022629bf48] kernel_thread at ffffffff8100c14a

Apologies in advance, this is an older kernel (2.6.32-279) but has
many more recent patches (thank-you!)

-Peter

<Prev in Thread] Current Thread [Next in Thread>