Thanks for the patch! Acked-by: Daniele Di Proietto <diproiet...@vmware.com>
On 01/02/2016 12:46, "Andy Zhou" <az...@ovn.org> wrote: >Commit d262ac2c60ce1da7b477737f70e8efd38b32502d introduced a slight >performance drop for the fast path, where every packets hits the >emc cache. This patch removes that performance drop by only reloading >the key pointer on emc cache miss. > >Sgned-off-by: Andy Zhou <az...@ovn.org> ^typo >--- > lib/dpif-netdev.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c >index c619b86..faf5d45 100644 >--- a/lib/dpif-netdev.c >+++ b/lib/dpif-netdev.c >@@ -3297,6 +3297,7 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, >struct dp_packet **packets, > struct packet_batch batches[], size_t *n_batches) > { > struct emc_cache *flow_cache = &pmd->flow_cache; >+ struct netdev_flow_key *key = &keys[0]; > size_t i, n_missed = 0, n_dropped = 0; > > for (i = 0; i < cnt; i++) { >@@ -3314,8 +3315,7 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, >struct dp_packet **packets, > OVS_PREFETCH(dp_packet_data(packets[i+1])); > } > >- struct netdev_flow_key *key = &keys[n_missed]; >- miniflow_extract(packets[i], &key->mf); >+ miniflow_extract(packet, &key->mf); > key->len = 0; /* Not computed yet. */ > key->hash = dpif_netdev_packet_get_rss_hash(packet, &key->mf); > >@@ -3326,7 +3326,8 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, >struct dp_packet **packets, > } else { > /* Exact match cache missed. Group missed packets together at > * the beginning of the 'packets' array. */ >- packets[n_missed++] = packet; >+ packets[n_missed] = packet; >+ key = &keys[n_missed++]; > } > } > >-- >1.9.1 > >_______________________________________________ >dev mailing list >dev@openvswitch.org >http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev