From: Steven Whitehouse on
Hi,

On Fri, 2010-02-26 at 13:17 -0600, David Teigland wrote:
> When both blocking and completion callbacks are queued for lock,
> the dlm would always deliver the completion callback (cast) first.
> In some cases the blocking callback (bast) is queued before the
> cast, though, and should be delivered first. This patch keeps
> track of the order in which they were queued and delivers them
> in that order.
>
> This patch also keeps track of the granted mode in the last cast
> and eliminates the following bast if the bast mode is compatible
> with the preceding cast mode. This happens when a remotely mastered
> lock is demoted, e.g. EX->NL, in which case the local node queues
> a cast immediately after sending the demote message. In this way
> a cast can be queued for a mode, e.g. NL, that makes an in-transit
> bast extraneous.
>
Some questions on this one... shouldn't the filtering of the basts go at
the start of dlm_add_ast() so that it catches both the basts heading to
userspace and the ones going via the kernel interface?

Also, when the short-cut of generating casts locally on certain remotly
mastered demote requests is used, does that somehow suppress the
generation of casts on the lock master? If not, where do the duplicate
cast messages get filtered out?

I notice that the variable lkb->lkb_bastmode_done has been added, but is
only ever assigned to and never read. Was that supposed to have been
made accessible via debugfs for example?

Steve.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: David Teigland on
On Thu, Mar 4, 2010 at 6:41 AM, Steven Whitehouse <swhiteho(a)redhat.com> wrote:
> Some questions on this one... shouldn't the filtering of the basts go at
> the start of dlm_add_ast() so that it catches both the basts heading to
> userspace and the ones going via the kernel interface?

Hm, I'm not sure what happened to the userspace part of this which is
only partly there. Thanks, I'll get that back or done (it's never been a
problem for userspace, but should still be done). It may make sense to
do some of this earlier for both, I'll have to see.

> Also, when the short-cut of generating casts locally on certain remotly
> mastered demote requests is used, does that somehow suppress the
> generation of casts on the lock master?

yes (it's a reply to the convert which is skipped)

> I notice that the variable lkb->lkb_bastmode_done has been added, but is
> only ever assigned to and never read. Was that supposed to have been
> made accessible via debugfs for example?

Yeah, it was used in an earlier version of this patch with a lot more checking
and debugging. I'll see if there's some debugging or checking I could add that
uses it or else remove.

Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/