Thread (22 messages) 22 messages, 3 authors, 2016-06-22

RE: ext4 out of order when use cfq scheduler

From: HUANG Weller (CM/ESW12-CN) <hidden>
Date: 2016-01-11 09:05:31

Possibly related (same subject, not in this thread)

-----Original Message-----
From: HUANG Weller (CM/ESW12-CN)
Sent: Friday, January 08, 2016 8:47 AM
To: 'Jan Kara' <jack@suse.cz>
Cc: linux-ext4@vger.kernel.org; Li, Michael <redacted>
Subject: RE: ext4 out of order when use cfq scheduler
quoted
quoted
quoted
OK, so I was looking into the code and indeed, reality is correct
and my mental model was wrong! ;) I thought that inode gets added
to the list of inodes for which we need to wait for data IO
completion during transaction commit during block allocation. And I was
wrong.
quoted
quoted
quoted
It used to happen in
mpage_da_map_and_submit() until commit f3b59291a69d (ext4: remove
calls to
ext4_jbd2_file_inode() from delalloc write path) where it got
removed. And that was wrong because although we submit data writes
before dropping handle for allocating transaction and updating
i_size, nobody guarantees that data IO is not delayed in the block
layer until
transaction commit.
quoted
quoted
Which seems to happen in your case. I'll send a fix. Thanks for
your report and persistence!
Thanks a lot for your feedback :-)
Because I am not familiar with the detail of the ext4 internal code.
I will try to
understand your explanation which you describe above.  And have a look
on related funcations.
quoted
Could you send the fix in this mail ?
And whether the kernel 3.14 also have such issue, right ?
The problem is in all kernels starting with 3.8. Attached is a patch
which should fix the issue. Can you test whether it fixes the problem for you?

								Honza
--
Yes, of course I will redo the test with the patch. And also give you feedback.
Test result:
Test on 2 targets with the kernel applied your patch. Both of them are OK after 5000 power failure tests. Our target test cycle is 10,000.
By the way, since your original patch can't be applied on 3.x kernel, The attached one  is based on yours and can applied on old kernel(mine is 3.10) directly.
quoted
Jan Kara [off-list ref]
SUSE Labs, CR

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help