[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