linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Questions on ext4 and writeback
@ 2009-08-13 16:09 Curt Wohlgemuth
  2009-08-18 16:39 ` Theodore Tso
  0 siblings, 1 reply; 4+ messages in thread
From: Curt Wohlgemuth @ 2009-08-13 16:09 UTC (permalink / raw)
  To: ext4 development

I've got a question about how ext4 handles the writeback control fields in
ext4_da_writepages().

I understand how the big picture works:  since we're doing delayed
allocation, when we're asked to write out a range of dirty pages, we need to
do allocation *now*, and we want to do allocation on the largest contiguous
range of pages possible.

So when __mpage_da_writepage() finds a page discontinuity, we submit the
page extent we have so far for I/O, and call redirty_page_for_writepage() on
the current page, skip the rest of the pages in the pagevec, and wait for a
new transaction.

On return from write_cache_pages(), ext4_da_writepages() will check the
return value from __mpage_da_writepage(), and if it's MPAGE_DA_EXTENT_TAIL,
will bump the number of pages written, and possibly cause another loop to
handle the rest of the pages (after the discontinuity).

What I don't understand is why wbc->pages_skipped is reset in this case.

I *think* that ext4_da_writepages() is trying to undo the effect of
redirty_page_for_writepage() to increment pages_skipped -- since we didn't
really skip this page, we only postponed its handling to the next pagevec.

But the actual submittal of I/O for the previous extent might cause
pages_skipped to be bumped, right?  Removing these increments might cause
the accounting to be incorrect, it seems to me.

I think it would be safer to explicitly decrement wbc->pages_skipped after a
call to redirty_page_for_writepage(), rather than reset this value to what
it was when ext4_da_writepages() was called.  Can somebody help me
understand where I might be mistaken?

Thanks,
Curt

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-08-20  7:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-13 16:09 Questions on ext4 and writeback Curt Wohlgemuth
2009-08-18 16:39 ` Theodore Tso
2009-08-18 16:57   ` Curt Wohlgemuth
2009-08-20  7:05     ` Aneesh Kumar K.V

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).