mirror of
https://github.com/openvswitch/ovs
synced 2025-09-05 00:35:33 +00:00
dpif-netdev: Don't uninit emc on reload.
There are many reasons for reloading of pmd threads: * reconfiguration of one of the ports. * Adjusting of static_tx_qid. * Adding new tx/rx ports. In many cases EMC is still useful after reload and uninit will only lead to unnecessary upcalls/classifier lookups. Such behaviour slows down the datapath. Uninit itself slows down the reload path. All this factors leads to additional unexpected latencies/drops on events not directly connected to current PMD thread. Lets not uninitialize emc cache on reload path. 'emc_cache_slow_sweep()' and replacements should free all the old/unwanted entries. Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Cian Ferriter <cian.ferriter@intel.com> Tested-by: Cian Ferriter <cian.ferriter@intel.com> Signed-off-by: Darrell Ball <dlu998@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
@@ -3794,9 +3794,9 @@ pmd_thread_main(void *f_)
|
||||
ovs_numa_thread_setaffinity_core(pmd->core_id);
|
||||
dpdk_set_lcore_id(pmd->core_id);
|
||||
poll_cnt = pmd_load_queues_and_ports(pmd, &poll_list);
|
||||
emc_cache_init(&pmd->flow_cache);
|
||||
reload:
|
||||
pmd_alloc_static_tx_qid(pmd);
|
||||
emc_cache_init(&pmd->flow_cache);
|
||||
|
||||
/* List port/core affinity */
|
||||
for (i = 0; i < poll_cnt; i++) {
|
||||
@@ -3850,13 +3850,13 @@ reload:
|
||||
* reloading the updated configuration. */
|
||||
dp_netdev_pmd_reload_done(pmd);
|
||||
|
||||
emc_cache_uninit(&pmd->flow_cache);
|
||||
pmd_free_static_tx_qid(pmd);
|
||||
|
||||
if (!exiting) {
|
||||
goto reload;
|
||||
}
|
||||
|
||||
emc_cache_uninit(&pmd->flow_cache);
|
||||
free(poll_list);
|
||||
pmd_free_cached_ports(pmd);
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user