[Sheepdog] [PATCH 2/3] sheep: handle CPG_EVENT_REQUEST even if CPG_EVENT_DELIVER exists

Yibin Shen kkbaal at gmail.com
Tue Sep 13 13:54:04 CEST 2011


if a CPG_EVENT_CONCHG event occured in the time window between a
CPG_EVENT_DELIVER & CPG_EVENT_REQUEST event pair(for example, a vdi lookup
operation followed by a  vdi meta object read operation)
cluster will hang forever for the meta object read event be blocked.

Yibin Shen
On Fri, Sep 2, 2011 at 12:37 AM, MORITA Kazutaka <
morita.kazutaka at lab.ntt.co.jp> wrote:

> This patch prevents a CPG_EVENT_DELIVER event from blocking VM I/Os.
>
> Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> ---
>  sheep/group.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/sheep/group.c b/sheep/group.c
> index 6690125..ab253a6 100644
> --- a/sheep/group.c
> +++ b/sheep/group.c
> @@ -1487,7 +1487,9 @@ do_retry:
>        list_for_each_entry_safe(cevent, n, &sys->cpg_event_siblings,
> cpg_event_list) {
>                struct request *req = container_of(cevent, struct request,
> cev);
>
> -               if (cevent->ctype != CPG_EVENT_REQUEST)
> +               if (cevent->ctype == CPG_EVENT_DELIVER)
> +                       continue;
> +               if (cevent->ctype == CPG_EVENT_CONCHG)
>                        break;
>
>                list_del(&cevent->cpg_event_list);
> --
> 1.7.2.5
>
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wpkg.org/pipermail/sheepdog/attachments/20110913/0840a7ca/attachment.html>


More information about the sheepdog mailing list