From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoRc-0001rJ-EX for qemu-devel@nongnu.org; Tue, 03 Nov 2015 22:09:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtoRZ-0002vg-7f for qemu-devel@nongnu.org; Tue, 03 Nov 2015 22:09:04 -0500 Received: from szxga01-in.huawei.com ([58.251.152.64]:15302) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoRX-0002ty-Ky for qemu-devel@nongnu.org; Tue, 03 Nov 2015 22:09:01 -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> <563972A6.5080800@redhat.com> From: zhanghailiang Message-ID: <563976B5.8040903@huawei.com> Date: Wed, 4 Nov 2015 11:08:37 +0800 MIME-Version: 1.0 In-Reply-To: <563972A6.5080800@redhat.com> 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: Jason Wang , 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 2015/11/4 10:51, Jason Wang wrote: > > > 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. > OK, will fix in next version, thanks. > Thanks >> >>> 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", >>>> >>> >> >> > > > . >