> -----Original Message-----
> From: Li Zhijian <lizhij...@cn.fujitsu.com>
> Sent: Wednesday, September 23, 2020 2:18 PM
> To: Zhang, Chen <chen.zh...@intel.com>; jasow...@redhat.com
> Cc: qemu-devel@nongnu.org
> Subject: Re: [PATCH 1/3] colo-compare: return -1 if no packet is queued
> 
> 
> 
> On 9/23/20 9:41 AM, Zhang, Chen wrote:
> >
> >> -----Original Message-----
> >> From: Li Zhijian <lizhij...@cn.fujitsu.com>
> >> Sent: Tuesday, September 22, 2020 5:55 PM
> >> To: Zhang, Chen <chen.zh...@intel.com>; jasow...@redhat.com
> >> Cc: qemu-devel@nongnu.org; Li Zhijian <lizhij...@cn.fujitsu.com>
> >> Subject: [PATCH 1/3] colo-compare: return -1 if no packet is queued
> >>
> >> Return 0 will trigger a packet comparison
> >>
> > Yes, we need active trigger a checkpoint to flush all the queued packets
> here.
> Previously, no new checkpoint will be triggered since no new packet is
> queued though colo_compare_connection() is called.
> actually we should send a notify to colo frame immediately, no need to
> compare them any more in order to less latency.

Yes, you are right. We can change this patch to directly send notify here.

Thanks
Zhang Chen

> 
> diff --git a/net/colo-compare.c b/net/colo-compare.c index
> 3a45d64175..23092e4496 100644
> --- a/net/colo-compare.c
> +++ b/net/colo-compare.c
> @@ -285,10 +285,13 @@ static int packet_enqueue(CompareState *s, int
> mode, Connection **con)
>       }
> 
>       if (!ret) {
> +        /* queue is too long, do a checkpoint to release all queued
> +packets */
> +        colo_compare_inconsistency_notify(s);
>           trace_colo_compare_drop_packet(colo_mode[mode],
>               "queue size too big, drop packet");
>           packet_destroy(pkt, NULL);
>           pkt = NULL;
> +        return -1;
>       }
> 
>       *con = conn;
> 
> 
> > Otherwise, we should drop all the packet after this time still next
> checkpoint.
> > So, I think original logic is a better choice.
> >
> > Thanks
> > Zhang Chen
> >
> >> Signed-off-by: Li Zhijian <lizhij...@cn.fujitsu.com>
> >> ---
> >>   net/colo-compare.c | 1 +
> >>   1 file changed, 1 insertion(+)
> >>
> >> diff --git a/net/colo-compare.c b/net/colo-compare.c index
> >> 3a45d64175..039b515611 100644
> >> --- a/net/colo-compare.c
> >> +++ b/net/colo-compare.c
> >> @@ -289,6 +289,7 @@ static int packet_enqueue(CompareState *s, int
> >> mode, Connection **con)
> >>               "queue size too big, drop packet");
> >>           packet_destroy(pkt, NULL);
> >>           pkt = NULL;
> >> +        return -1;
> >>       }
> >>
> >>       *con = conn;
> >> --
> >> 2.28.0
> >>
> >>
> >
> >
> 
> 

Reply via email to