On 28 September 2016 at 16:21, Joe Stringer <j...@ovn.org> wrote:
> On 28 September 2016 at 14:22, Daniele Di Proietto <diproiet...@ovn.org> 
> wrote:
>> Thanks for doing this cleanup, my instant revalidation series should be much
>> simpler after this.
>>
>> It looks like this needs rebasing, but it is pretty trivial
>>
>> I've gone through the code, I only have a couple minor of comments about how
>> commits are organized.
>>
>> Other than that it looks good to me.
>>
>> For the series:
>>
>> Acked-by: Daniele Di Proietto <diproiet...@vmware.com>
>
> Thanks, I'll push the series soon. The only functional change after
> rebase + applying feedback is this:
>
> diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
> index 84f1de273598..cafb46fa666b 100644
> --- a/ofproto/ofproto-dpif-upcall.c
> +++ b/ofproto/ofproto-dpif-upcall.c
> @@ -2035,6 +2035,10 @@ revalidate_ukey(struct udpif *udpif, struct
> udpif_key *ukey,
>             }
>             result = revalidate_ukey__(udpif, ukey, push.tcp_flags,
>                                        odp_actions, recircs, ukey->xcache);
> +            if (result == UKEY_DELETE && !ukey->xcache->entries.size) {
> +                xlate_cache_delete(ukey->xcache);
> +                ukey->xcache = NULL;
> +            }
>         } /* else delete; too expensive to revalidate */
>     } else if (!push.n_packets || ukey->xcache
>                || !populate_xcache(udpif, ukey, push.tcp_flags)) {

This part is not strictly necessary - it covers cases like failure to
do odp translation or xlate lookup. However if these fail during
revalidate_ukey__() then they're going to fail later anyway, so
allowing an empty xcache is a reasonable way to handle this case.
There's no danger of leaking the xcache since it's attached to the
ukey anyway. I'll drop this piece.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to