> -----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 > >> > >> > > > > > >