qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH COLO-Frame v10 33/38] netfilter: Introduce an AP


From: Jason Wang
Subject: Re: [Qemu-devel] [PATCH COLO-Frame v10 33/38] netfilter: Introduce an API to delete the timer of all buffer-filters
Date: Wed, 4 Nov 2015 10:51:18 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0


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年11月03日 19:56, zhanghailiang wrote:
>>> Signed-off-by: zhanghailiang <address@hidden>
>>> Cc: Jason Wang <address@hidden>
>>> ---
>>> 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",
>>>
>>
>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]