Re: Excessive stall times on ext4 in 3.9-rc2
From: Theodore Ts'o
Date: Fri Apr 12 2013 - 11:20:46 EST
On Fri, Apr 12, 2013 at 02:50:42PM +1000, Dave Chinner wrote:
> > If that is the case, one possible solution that comes to mind would be
> > to mark buffer_heads that contain metadata with a flag, so that the
> > flusher thread can write them back at the same priority as reads.
> Ext4 is already using REQ_META for this purpose.
We're using REQ_META | REQ_PRIO for reads, not writes.
> I'm surprised that no-one has suggested "change the IO elevator"
Well, testing to see if the stalls go away with the noop schedule is a
good thing to try just to validate the theory.
The thing is, we do want to make ext4 work well with cfq, and
prioritizing non-readahead read requests ahead of data writeback does
make sense. The issue is with is that metadata writes going through
the block device could in some cases effectively cause a priority
inversion when what had previously been an asynchronous writeback
starts blocking a foreground, user-visible process.
At least, that's the theory; we should confirm that this is indeed
what is causing the data stalls which Mel is reporting on HDD's before
we start figuring out how to fix this problem.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/