> Since statistics updates might require locking (in future commits) > grouping them will reduce the locking overhead.
Do they actually require locking in future commits or is this speculative? Adding locks for these stats seems like a pretty significant step backwards, have you measured the overhead? Ethan > > Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> > --- > lib/dpif-netdev.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index 6b61db4..2637e8d 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > @@ -2692,10 +2692,6 @@ dp_netdev_upcall(struct dp_netdev_pmd_thread *pmd, > struct dp_packet *packet_, > { > struct dp_netdev *dp = pmd->dp; > > - if (type == DPIF_UC_MISS) { > - dp_netdev_count_packet(pmd, DP_STAT_MISS, 1); > - } > - > if (OVS_UNLIKELY(!dp->upcall_cb)) { > return ENODEV; > } > @@ -2907,6 +2903,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd, > if (OVS_UNLIKELY(any_miss) && !fat_rwlock_tryrdlock(&dp->upcall_rwlock)) > { > uint64_t actions_stub[512 / 8], slow_stub[512 / 8]; > struct ofpbuf actions, put_actions; > + int miss_cnt = 0, lost_cnt = 0; > ovs_u128 ufid; > > ofpbuf_use_stub(&actions, actions_stub, sizeof actions_stub); > @@ -2931,6 +2928,8 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd, > continue; > } > > + miss_cnt++; > + > miniflow_expand(&keys[i].mf, &match.flow); > > ofpbuf_clear(&actions); > @@ -2942,7 +2941,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd, > &put_actions); > if (OVS_UNLIKELY(error && error != ENOSPC)) { > dp_packet_delete(packets[i]); > - dp_netdev_count_packet(pmd, DP_STAT_LOST, 1); > + lost_cnt++; > continue; > } > > @@ -2976,6 +2975,8 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd, > ofpbuf_uninit(&actions); > ofpbuf_uninit(&put_actions); > fat_rwlock_unlock(&dp->upcall_rwlock); > + dp_netdev_count_packet(pmd, DP_STAT_MISS, miss_cnt); > + dp_netdev_count_packet(pmd, DP_STAT_LOST, lost_cnt); > } else if (OVS_UNLIKELY(any_miss)) { > int dropped_cnt = 0; > > -- > 2.1.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev