[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110603002714.GA27129@redhat.com>
Date: Thu, 2 Jun 2011 20:27:14 -0400
From: Vivek Goyal <vgoyal@...hat.com>
To: Dave Chinner <david@...morbit.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: Query about DIO/AIO WRITE throttling and ext4 serialization
On Fri, Jun 03, 2011 at 09:51:53AM +1000, Dave Chinner wrote:
[..]
> > > Dave,
> > >
> > > I did a quick test of throttling a direct IO on one file and then
> > > doing "truncate -s 40 testfile" on a different file in different
> > > cgroup and it seems to work fine.
> > >
> > > But I seem to be having issues with "sync". Looks like in ext4, if
> > > I throttle a DIO, sync does not hang but in XFS it does. I am
> > > wondering if XFS is waiting for all inflight DIO to finish before
> > > sync completes.
> >
> > "sync" on XFS seems to be livelocking as long as DIO write operation
> > is going on and same does not happen on ext4.
> >
> > I ran "aio-stress -O aiofile1 -s 4G" and in other window I did "sync"
> > and it does not finish untile and unless aio-stress has finished.
> > On the other hand ext4 seems to be fine and it does finish earlier.
>
> On XFS sync waits for the IO count on each inode to return to zero
> before continuing. If you are blasting concurrent AIO/DIO at a
> file, then it is possible that the IO count never falls to zero.
> It's questionable whether this is necessary, but ISTR that the
> current behaviour has been there for a long time (though morphed
> about a bit in implementation).
In this case only a single thread is doing IO continuously. I am assuming
if there is a database using XFS, it is not unreasonable to have prolonged
periods of continuous IO activity. In that case I think by above design
sync will not finish until and unless there is a momentary pause in IO. This
does not sound like the best design choice.
Thanks
Vivek
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists