[Sheepdog] [PATCH] serialize all cpg events
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Wed Apr 21 04:04:15 CEST 2010
On 2010/04/20 23:39, FUJITA Tomonori wrote:
> On Tue, 20 Apr 2010 15:59:35 +0900
> FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp> wrote:
>
>> There is a bug that deliver and confchg events are not performed in
>> order.
>>
>> - we link all the cpg events to sys->cpg_event_siblings.
>>
>> - the above events are performed serially.
>
> There are some problems in the patch so here's v2.
>
> =
> From: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
> Subject: [PATCH v2] serialize all cpg events
>
> There is a bug that deliver and confchg events are not performed in
> order.
>
> - we link all the cpg events to sys->cpg_event_siblings.
>
> - the above events are performed serially.
>
> - we need to ignore deliver events until we join sheepdog.
>
> - we can't use WORK_ORDERED since it blocks qemu I/Os. All cpg events
> are serialized so we don't need it.
>
> - we can't call join() and vdi_op() that can sleep for long time in
> the main process.
>
> - we need to think about two cases when we finish __sd_deliver_done()
> for a INIT message; a) we already got for the FIN for it or we
> haven't so we need to suspend the cpg event execution.
>
> Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
> ---
> collie/collie.h | 4 +-
> collie/group.c | 504 +++++++++++++++++++++++++++++-------------------------
> include/bitops.h | 5 +
> 3 files changed, 283 insertions(+), 230 deletions(-)
>
Looks working fine. Applied to the master branch.
Thanks,
Kazutaka Morita
More information about the sheepdog
mailing list