From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54659) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtbK3-0005PH-D6 for qemu-devel@nongnu.org; Tue, 03 Nov 2015 08:08:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtbJx-0004aA-8o for qemu-devel@nongnu.org; Tue, 03 Nov 2015 08:08:23 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:41370) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtbJw-0004Yg-2v for qemu-devel@nongnu.org; Tue, 03 Nov 2015 08:08:17 -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> From: zhanghailiang Message-ID: <5638B1A1.6060109@huawei.com> Date: Tue, 3 Nov 2015 21:07:45 +0800 MIME-Version: 1.0 In-Reply-To: <5638AB88.4000300@easystack.cn> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit 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: Yang Hongyang , qemu-devel@nongnu.org Cc: lizhijian@cn.fujitsu.com, quintela@redhat.com, Jason Wang , yunhong.jiang@intel.com, eddie.dong@intel.com, peter.huangpeng@huawei.com, dgilbert@redhat.com, arei.gonglei@huawei.com, stefanha@redhat.com, amit.shah@redhat.com 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 > On 2015年11月03日 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 = 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", >> >