Re: sleeps and waits during io_submit

Dave Chinner
2015-12-01T20:31:03Z

On Mon, Nov 30, 2015 at 06:51:51PM -0500, Glauber Costa wrote:
> On Mon, Nov 30, 2015 at 6:10 PM, Dave Chinner <david@fromorbit.com> wrote:
> > Let me have a think about how we can implement lazytime in a sane
> > way, such that fsync() works correctly, we don't throw away
> > timstamp changes in memory reclaim and we don't write unlogged
> > changes to the on-disk locations....
>
> I trust you fully for matters related to speed.
>
> Keep in mind, though, that at least for us the fact that it blocks is
> a lot worse than the fact that it is slow. We can work around slow,
> but blocking basically means that we won't have any more work to push
> - since we don't do threading. The processor that stales just sits
> idle until the lock is released. So any non-blocking solution to this
> would already be a win for us.

Right, the blocking is on the inode lock needed to do the
transactional update of the timestamp. lazytime would need to avoid
the timestamp update transaction completely, but we still need to
capture the timestamp and run the transaction later or capture it in
a subsequent change before we write back the inode.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com