On 03/12/2017 05:33 PM, Bhanuprakash Bodireddy wrote: > Conditional EMC insert patch gives the flexibility to configure the > probability of flow insertion in to EMC. This also allows an option to > entirely disable EMC by setting 'emc-insert-inv-prob=0' which can be > useful at large number of parallel flows. > > This patch skips EMC lookup when EMC is disabled. This is useful to > avoid wasting CPU cycles and also improve performance considerably. >
LGTM. How much does this improve performance? > Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> > CC: Ciara Loftus <ciara.lof...@intel.com> > CC: Georg Schmuecking <georg.schmueck...@ericsson.com> > --- > lib/dpif-netdev.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index 7d53a8d..faadedb 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > @@ -4517,8 +4517,11 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, > size_t n_missed = 0, n_dropped = 0; > struct dp_packet *packet; > const size_t size = dp_packet_batch_size(packets_); > + uint32_t cur_min; > int i; > > + atomic_read_relaxed(&pmd->dp->emc_insert_min, &cur_min); > + > DP_PACKET_BATCH_REFILL_FOR_EACH (i, size, packet, packets_) { > struct dp_netdev_flow *flow; > > @@ -4542,7 +4545,8 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, > key->len = 0; /* Not computed yet. */ > key->hash = dpif_netdev_packet_get_rss_hash(packet, &key->mf); > > - flow = emc_lookup(flow_cache, key); > + /* If EMC is disabled skip emc_lookup */ > + flow = (cur_min == 0) ? NULL: emc_lookup(flow_cache, key); > if (OVS_LIKELY(flow)) { > dp_netdev_queue_batches(packet, flow, &key->mf, batches, > n_batches); > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev