On 17 Jan 2023, at 4:11, Han Zhou wrote:
> On Mon, Jan 16, 2023 at 7:36 AM Eelco Chaudron <echau...@redhat.com> wrote: >> >> >> >> On 18 Oct 2022, at 18:11, Adrian Moreno wrote: >> >>> On 10/14/22 20:07, Han Zhou wrote: >>>> >>>> >>>> On Thu, Oct 13, 2022 at 11:51 PM Adrian Moreno <amore...@redhat.com > <mailto:amore...@redhat.com>> wrote: >>>>> >>>>> >>>>> >>>>> On 8/9/22 03:41, Han Zhou wrote: >>>>>> Signed-off-by: Han Zhou <hz...@ovn.org <mailto:hz...@ovn.org>> >>>>>> --- >>>>>> ofproto/ofproto-dpif-upcall.c | 13 ++++++++++++- >>>>>> 1 file changed, 12 insertions(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/ofproto/ofproto-dpif-upcall.c > b/ofproto/ofproto-dpif-upcall.c >>>>>> index 23b52ef40..f26a035f4 100644 >>>>>> --- a/ofproto/ofproto-dpif-upcall.c >>>>>> +++ b/ofproto/ofproto-dpif-upcall.c >>>>>> @@ -58,6 +58,10 @@ COVERAGE_DEFINE(upcall_ukey_replace); >>>>>> COVERAGE_DEFINE(revalidate_missed_dp_flow); >>>>>> COVERAGE_DEFINE(upcall_flow_limit_hit); >>>>>> COVERAGE_DEFINE(upcall_flow_limit_kill); >>>>>> +COVERAGE_DEFINE(upcall_flow_del_rev); >>>>>> +COVERAGE_DEFINE(upcall_flow_del_no_rev); >>>>>> +COVERAGE_DEFINE(upcall_flow_del_idle_or_limit); >>>>>> +COVERAGE_DEFINE(upcall_flow_del_purge); >>>>>> >>>>>> /* A thread that reads upcalls from dpif, forwards each upcall's > packet, >>>>>> * and possibly sets up a kernel flow as a cache. */ >>>>>> @@ -2334,7 +2338,12 @@ revalidate_ukey(struct udpif *udpif, struct > udpif_key *ukey, >>>>>> } >>>>>> result = revalidate_ukey__(udpif, ukey, push.tcp_flags, >>>>>> odp_actions, recircs, > ukey->xcache); >>>>>> - } /* else delete; too expensive to revalidate */ >>>>>> + if (result == UKEY_DELETE) { >>>>>> + COVERAGE_INC(upcall_flow_del_rev); >>>>>> + } >>>>>> + } else { /* else delete; too expensive to revalidate */ >>>>>> + COVERAGE_INC(upcall_flow_del_no_rev); >>>>>> + } >>>>>> } else if (!push.n_packets || ukey->xcache >>>>>> || !populate_xcache(udpif, ukey, push.tcp_flags)) { >>>>>> result = UKEY_KEEP; >>>>>> @@ -2771,6 +2780,7 @@ revalidate(struct revalidator *revalidator) >>>>>> } >>>>>> if (kill_them_all || (used && used < now - max_idle)) { >>>>>> result = UKEY_DELETE; >>>>>> + COVERAGE_INC(upcall_flow_del_idle_or_limit); >>>>>> } else { >>>>>> result = revalidate_ukey(udpif, ukey, &stats, > &odp_actions, >>>>>> reval_seq, &recircs, >>>>>> @@ -2852,6 +2862,7 @@ revalidator_sweep__(struct revalidator > *revalidator, bool purge) >>>>>> >>>>>> if (purge) { >>>>>> result = UKEY_DELETE; >>>>>> + COVERAGE_INC(upcall_flow_del_purge); >>>>>> } else if (!seq_mismatch) { >>>>>> result = UKEY_KEEP; >>>>>> } else { >>>>> >>>>> >>>>> This has some overlap with the work Kevin has been doing [1]. >>>>> >>>>> > https://patchwork.ozlabs.org/project/openvswitch/patch/20221003200742.78047-1-ksprague0...@gmail.com/ > < > https://patchwork.ozlabs.org/project/openvswitch/patch/20221003200742.78047-1-ksprague0...@gmail.com/ >> >>>>> >>>>> Maybe this patch can be combined with Kevin's to provide unified > visibility >>>>> (coverage counters + USDT probes) to the revalidation results? >>>>> >>>> Thanks Adrian for reviewing! This has been there for 2 months and I > was about to send a reminder. >>>> And thanks for the pointer to the related patch. These two patches are > for similar purposes, while they provide different ways to access the > information, and I think both are useful. The coverage counters added here > try to provide stats of basic DP flow deletion categories, while USDT > probes may provide more details, so I am not sure whether these two need to > match to each other exactly. But I agree that at least for the same del > reasons these two patches should use the same names to avoid confusion. >>>> Do you have any detailed comments regarding the counters in this patch? >>>> >>> >>> I think the counters added by this patch are useful. I just think (as > you mention above) that the reason names should be unified with Kevin's > work so we have both USDT and counters reporting revalidator decisions. >> >> I was adding a lot of changes above on naming, but I think it would be > better to maybe merge his patch with yours?! >> >> However, as his patch is waiting for a v7. Maybe you can take his code > changes without the script, and add some counters @ the probe location. As > I’m fine with his patch, except for the python script. >> >> Latest Kevin patch, > https://patchwork.ozlabs.org/project/openvswitch/patch/20221021163543.508906-1-ksprague0...@gmail.com/ >> >> > Thanks Eelco. To make it simpler, I'd wait for Kevin's patch to be merged > and I can rebase this one on top of it. I have provided some minor comments > on Kevin's patch, too. Please take a look. That will work, I looked at your comments and they all make sense to me. Let’s wait for Kevin to reply and sent out a new version. //Eelco _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev