[Openais] trunk patch - unlock global serializer mutex
renayama19661014 at ybb.ne.jp
renayama19661014 at ybb.ne.jp
Sun Jun 20 22:19:18 PDT 2010
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 <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