Re: [dm-devel] Barriers still not passing on simple dm devices...

From: Bodo Eggert
Date: Thu Mar 26 2009 - 11:27:19 EST


Chris Mason <chris.mason@xxxxxxxxxx> wrote:
> On Wed, 2009-03-25 at 18:39 -0400, Mikulas Patocka wrote:

>> > The error handling is complex, no doubt
>> > about that. But the trial barrier test is pretty trivial and even could
>> > be easily abstracted out. If a later barrier write fails, then that's
>> > really no different than if a normal write fails. Error handling is not
>> > easy in that case.
>>
>> I had a discussion with Andi about it some times ago. The conclusion was
>> that all the current filesystems handle barriers failing in the middle of
>> the operation without functionality loss, but it makes barriers useless
>> for any performance-sensitive tasks (commits that wouldn't block
>> concurrent activity). Non-blocking commits could only be implemented if
>> barriers don't fail.
>>
>
> If a barrier fails at runtime, the filesystems do fall back to not doing
> barriers without real problems.

That's because there are no real problems in not honoring barriers - unless
your system crashes.

> But, that's because they don't actually
> rely on the barriers to decide if an async commit is a good idea.

As long as they cannot rely on barriers - how should they?

[...]
> In general, async commits happen with threads and they aren't related to
> barriers.

If my filesystem said "First update b, then let a point to b", where the H
is the thread?

> Barriers don't really give us error handling,

Each request should give you error handling, but you are right: The whole
queue after the barrier must be aborted, too. (Or better: The part depending
on the barrier.)

> and they are at
> the very end of a long chain of technical problems around commits that
> don't block concurrent activity.

You lost me here, but I guess the end will be a major rewrite.

--
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/