[ovs-dev] [v10 12/12] dpif-netdev: add mfex options to scalar dpif
Kumar Amber
kumar.amber at intel.com
Tue Jul 13 05:32:43 UTC 2021
From: kumar Amber <kumar.amber at intel.com>
This commits add the mfex optimized options to be
executed as part of scalar DPIF.
Signed-off-by: kumar Amber <kumar.amber at intel.com>
Acked-by: Flavio Leitner <fbl at sysclose.org>
---
lib/dpif-netdev.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index cca211837..14c98e450 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -7029,6 +7029,7 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd,
size_t n_missed = 0, n_emc_hit = 0, n_phwol_hit = 0, n_mfex_opt_hit = 0;
struct dfc_cache *cache = &pmd->flow_cache;
struct dp_packet *packet;
+ struct dp_packet_batch single_packet;
const size_t cnt = dp_packet_batch_size(packets_);
uint32_t cur_min = pmd->ctx.emc_insert_min;
const uint32_t recirc_depth = *recirc_depth_get();
@@ -7039,6 +7040,11 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd,
size_t map_cnt = 0;
bool batch_enable = true;
+ single_packet.count = 1;
+
+ miniflow_extract_func mfex_func;
+ atomic_read_relaxed(&pmd->miniflow_extract_opt, &mfex_func);
+
atomic_read_relaxed(&pmd->dp->smc_enable_db, &smc_enable_db);
pmd_perf_update_counter(&pmd->perf_stats,
md_is_valid ? PMD_STAT_RECIRC : PMD_STAT_RECV,
@@ -7089,7 +7095,22 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd,
}
}
- miniflow_extract(packet, &key->mf);
+ /* Set the count and packet for miniflow_opt with batch_size 1. */
+ if ((mfex_func) && (!md_is_valid)) {
+ single_packet.packets[0] = packet;
+ int mf_ret;
+
+ mf_ret = mfex_func(&single_packet, key, 1, port_no, pmd);
+ /* Fallback to original miniflow_extract if there is a miss. */
+ if (mf_ret) {
+ n_mfex_opt_hit++;
+ } else {
+ miniflow_extract(packet, &key->mf);
+ }
+ } else {
+ miniflow_extract(packet, &key->mf);
+ }
+
key->len = 0; /* Not computed yet. */
key->hash =
(md_is_valid == false)
--
2.25.1
More information about the dev
mailing list