[Ocfs2-devel] questions of AST and BAST (was Re: dlm stress test hangs OCFS2)

Sunil Mushran sunil.mushran at oracle.com
Wed Sep 23 11:21:37 PDT 2009


AST is a message the master sends to a node to indicate a successful up/down
conversion of the lock.

BAST is a message the master sends to one or more nodes asking them to
downconvert their lock.

As opposed to smp locks, a dlm lock can be held by a node for as long as
it wants. BAST is the mechanism to inform nodes to give it up.

So say nodes 1, 2, 3, 4 have a PR on a resource. Say Node 4 wants to
upconvert to EX. It will send a upconvert request to the master (it could be
any of the 4 nodes). As EX and PR are incompatible, the master will then
send a BAST to 1, 2 and 3 asking them to downconvert to NL. Those nodes
will then send downconvert requests to the master. Once those conversions
are completed, the master will send an AST to node 4.

This concept is very generic and is not specific to ocfs2. I would suggest
you read the following document.
http://opendlm.sourceforge.net/cvsmirror/opendlm/docs/dlmbook_final.pdf

Sunil

Coly Li wrote:
> Sunil Mushran Wrote:
>   
>> BAST:
>> [368.807757] (2572,dlm_astd,0):ocfs2_blocking_ast:1025 BAST fired for
>> lockres M0000000000000000085e0200000000, blocking 5, level 3 type Meta
>> [368.807767] (2571,ocfs2dc,0):ocfs2_process_blocked_lock:3839 lockres
>> M0000000000000000085e0200000000 blocked.
>> [368.807774] (2571,ocfs2dc,0):ocfs2_prepare_downconvert:3232 lock
>> M0000000000000000085e0200000000, new_level = 0, l_blocking = 5
>> [368.807779] (2571,ocfs2dc,0):ocfs2_downconvert_lock:3252 lock
>> M0000000000000000085e0200000000, level 3 => 0
>> [368.807799] (2571,ocfs2dc,0):ocfs2_process_blocked_lock:3863 lockres
>> M0000000000000000085e0200000000, requeue = no.
>>
>> Downconvert AST:
>> [368.807806] (2572,dlm_astd,0):ocfs2_locking_ast:1069 lock
>> M0000000000000000085e0200000000, action 3, unlock 0
>>
>> Upconvert AST:
>> [369.007930] (2572,dlm_astd,0):ocfs2_locking_ast:1069 lock
>> M0000000000000000085e0200000000, action 2, unlock 0
>>
>> BAST:
>> [369.007946] (2572,dlm_astd,0):ocfs2_blocking_ast:1025 BAST fired for
>> lockres M0000000000000000085e0200000000, blocking 5, level 3 type Meta
>> [369.007956] (2571,ocfs2dc,0):ocfs2_process_blocked_lock:3839 lockres
>> M0000000000000000085e0200000000 blocked.
>> [369.007962] (2571,ocfs2dc,0):ocfs2_prepare_downconvert:3232 lock
>> M0000000000000000085e0200000000, new_level = 0, l_blocking = 5
>> [369.007967] (2571,ocfs2dc,0):ocfs2_downconvert_lock:3252 lock
>> M0000000000000000085e0200000000, level 3 => 0
>> [369.007987] (2571,ocfs2dc,0):ocfs2_process_blocked_lock:3863 lockres
>> M0000000000000000085e0200000000, requeue = no.
>>
>> Downconvert AST:
>> [369.007994] (2572,dlm_astd,0):ocfs2_locking_ast:1069 lock
>> M0000000000000000085e0200000000, action 3, unlock 0
>>
>> Upconvert AST:
>> [369.208048] (2572,dlm_astd,0):ocfs2_locking_ast:1069 lock
>> M0000000000000000085e0200000000, action 2, unlock 0
>>     
>
> Hi Sunil,
>
> It is still not very clear to me, for the conception of AST and BAST in ocfs2.
>
> I guess in ocfs2, when downconvert or upconvert gets done, there will be a AST
> popped. But it's not clear to me in which conditions the AST will happen, and
> when a BAST will happen.
>
> Can I get any hint ?  :-)
>
> Thanks
>   




More information about the Ocfs2-devel mailing list