[Openais] trunk patch - unlock global serializer mutex

Steven Dake sdake at redhat.com
Mon Jun 21 09:57:03 PDT 2010


On 06/20/2010 10:19 PM, renayama19661014 at ybb.ne.jp wrote:
> Hi Steven,
> 
> I tested your patch on Esxi.
> The problem that the guest whom I reported cannot stop was broken off by your patch.
> 
>   * It is not used 100% for the CPU of the guest.
>   * And corosync stops quickly.
> 
> We look forward to the next release of corosync.
> 
> Best Regards,
> Hideo Yamauchi.
> 

Thanks for the confirmation.  I'll release a new version today.

Regards
-steve

> --- Steven Dake<sdake at redhat.com>  wrote:
> 
>> The global serializer mutex is left in a locked state during the
>> shutdown process.  At about the same time, the timer system expires a
>> timer (which takes the global serializer lock) leading to either high
>> CPU use on multiprocessor during shutdown or deadlock on uniprocessor.
>>
>> Regards
>> -steve
>>> Index: exec/main.c
>> ===================================================================
>> --- exec/main.c	(revision 2948)
>> +++ exec/main.c	(working copy)
>> @@ -139,6 +139,8 @@
>>
>>   static sem_t corosync_exit_sem;
>>
>> +static void serialize_unlock (void);
>> +
>>   hdb_handle_t corosync_poll_handle_get (void)
>>   {
>>   	return (corosync_poll_handle);
>> @@ -157,6 +159,13 @@
>>
>>   static void unlink_all_completed (void)
>>   {
>> +	/*
>> +	 * The schedwrk_do API takes the global serializer lock
>> +	 * but doesn't release it because this exit callback is called
>> +	 * before it finishes.  Since we know we are exiting, we unlock it
>> +	 * here
>> +	 */
>> +	serialize_unlock ();
>>   	poll_stop (corosync_poll_handle);
>>   	totempg_finalize ();
>>
>>> _______________________________________________
>> Openais mailing list
>> Openais at lists.linux-foundation.org
>> https://lists.linux-foundation.org/mailman/listinfo/openais
> 



More information about the Openais mailing list