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-08 00:46:47

Possibly related (same subject, not in this thread)

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.
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.
Thanks.
Huang weller
Jan Kara [off-list ref]
SUSE Labs, CR
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help