Thread (20 messages) flat view 20 messages, 7 authors, 2012-03-09

Re: [PATCH, RFC] Don't do page stablization if !CONFIG_BLKDEV_INTEGRITY

From: Dave Chinner <david@fromorbit.com>
Date: 2012-03-08 23:32:41
Also in: linux-fsdevel

On Thu, Mar 08, 2012 at 12:50:42PM -0800, Boaz Harrosh wrote:
On 03/08/2012 12:37 PM, Chris Mason wrote:
quoted
On Thu, Mar 08, 2012 at 12:20:26PM -0800, Boaz Harrosh wrote:
quoted
On 03/08/2012 10:09 AM, Chris Mason wrote:
quoted
But, why are we writeback for a second or more?  Aren't there other
parts of this we would want to fix as well?

I'm not against only turning on stable pages when they are needed, but
the code that isn't the default tends to be somewhat less used.  So it
does increase testing burden when we do want stable pages, and it tends
to make for awkward bugs that are hard to reproduce because someone
neglects to mention it.

IMHO it's much more important to nail down the 2 second writeback
latency. That's not good.
I think I understand this one. It's do to the sync nature introduced
by page_waiting in mkwrite.
Pages go from dirty to writeback for a few reasons.  Background
writeout, or O_DIRECT or someone running sync

background writeout shouldn't be queueing up so much work that
synchronous writeout has a 2 second delay.

If the latencies are coming from something that was run through
fsync...well there's not too much we can do about that.  The problem is
that our page_mkwrite call isn't starting the IO it is just waiting on
it, so we can't bump the priority on it.
I agree. I think the logger model is: write, than sync

Before they used to be waiting on the sync phase now their waiting
on write, when concurrent with sync. I would like to inspect this situation.
I agree with you that it's just shifting heaviness that is now hiding somewhere
else.
I'd argue that the application is broken, not the kernel. IO
latencies are always going to occur, so if the application is
sensitive to them, then the app needs to take measures to minimise
the effect of potential latencies.  Double/ring buffering with async
IO dispatch is the general method of avoiding significant latencies
in IO aggregator applications like loggers...

Cheers,

Dave.

-- 
Dave Chinner
david@fromorbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help