From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoAb-0005dm-Al for qemu-devel@nongnu.org; Tue, 03 Nov 2015 21:51:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtoAY-00076I-4c for qemu-devel@nongnu.org; Tue, 03 Nov 2015 21:51:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40802) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoAX-00076C-VM for qemu-devel@nongnu.org; Tue, 03 Nov 2015 21:51:26 -0500 References: <1446551816-15768-1-git-send-email-zhang.zhanghailiang@huawei.com> <1446551816-15768-34-git-send-email-zhang.zhanghailiang@huawei.com> <5638AB88.4000300@easystack.cn> <5638B1A1.6060109@huawei.com> From: Jason Wang Message-ID: <563972A6.5080800@redhat.com> Date: Wed, 4 Nov 2015 10:51:18 +0800 MIME-Version: 1.0 In-Reply-To: <5638B1A1.6060109@huawei.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH COLO-Frame v10 33/38] netfilter: Introduce an API to delete the timer of all buffer-filters List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: zhanghailiang , Yang Hongyang , qemu-devel@nongnu.org Cc: lizhijian@cn.fujitsu.com, quintela@redhat.com, yunhong.jiang@intel.com, eddie.dong@intel.com, dgilbert@redhat.com, peter.huangpeng@huawei.com, arei.gonglei@huawei.com, stefanha@redhat.com, amit.shah@redhat.com On 11/03/2015 09:07 PM, zhanghailiang wrote: > Hi, > > On 2015/11/3 20:41, Yang Hongyang wrote: >> Can you explain why this is needed? Seems that this api hasn't >> been used in this series. >> > > We will call it in colo_init_filter_buffers() which is introduced in > patch 37, > We should remove the timers of filter-buffers which are configured by > users. > Or there will be two places to release packets when we enable colo ft, > one in timer callback, > the other one in COLO when we do checkpoint. > > > Thanks, > zhanghailiang Hi: Then you'd better explain this in commit log. Thanks > >> On 2015=E5=B9=B411=E6=9C=8803=E6=97=A5 19:56, zhanghailiang wrote: >>> Signed-off-by: zhanghailiang >>> Cc: Jason Wang >>> --- >>> v10: new patch >>> --- >>> include/net/filter.h | 1 + >>> net/filter-buffer.c | 17 +++++++++++++++++ >>> 2 files changed, 18 insertions(+) >>> >>> diff --git a/include/net/filter.h b/include/net/filter.h >>> index 5a09607..4499d60 100644 >>> --- a/include/net/filter.h >>> +++ b/include/net/filter.h >>> @@ -74,5 +74,6 @@ ssize_t qemu_netfilter_pass_to_next(NetClientState >>> *sender, >>> int iovcnt, >>> void *opaque); >>> void filter_buffer_release_all(void); >>> +void filter_buffer_del_all_timers(void); >>> >>> #endif /* QEMU_NET_FILTER_H */ >>> diff --git a/net/filter-buffer.c b/net/filter-buffer.c >>> index b344901..5f0ea70 100644 >>> --- a/net/filter-buffer.c >>> +++ b/net/filter-buffer.c >>> @@ -178,6 +178,23 @@ void filter_buffer_release_all(void) >>> qemu_foreach_netfilter(filter_buffer_release_packets, NULL, >>> NULL); >>> } >>> >>> +static void filter_buffer_del_timer(NetFilterState *nf, void *opaque= , >>> + Error **errp) >>> +{ >>> + if (!strcmp(object_get_typename(OBJECT(nf)), >>> TYPE_FILTER_BUFFER)) { >>> + FilterBufferState *s =3D FILTER_BUFFER(nf); >>> + >>> + if (s->interval) { >>> + timer_del(&s->release_timer); >>> + } >>> + } >>> +} >>> + >>> +void filter_buffer_del_all_timers(void) >>> +{ >>> + qemu_foreach_netfilter(filter_buffer_del_timer, NULL, NULL); >>> +} >>> + >>> static void filter_buffer_init(Object *obj) >>> { >>> object_property_add(obj, "interval", "int", >>> >> > >