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.

--- Steven Dake <sd...@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@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/openais

_______________________________________________
Openais mailing list
Openais@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to