Hi, Daniele. Thanks for v3. Acked-by: Ilya Maximets <[email protected]>
On 09.01.2017 06:14, Daniele Di Proietto wrote: > The first two commits of the series are trivial bugfixes for dpif-netdev. > > Then the series fixes a long standing bug that caused a crash when the > admin link state of a port is changed while traffic is flowing. > > The next part makes use of reconfiguration for port add: this makes > the operation twice as fast and reduce some code duplication. This part > conflicts with the port naming change, so I'm willing to postpone it, unless > we find it to be useful for the port naming change. > > The rest of the series refactors a lot of code if dpif-netdev: > > * We no longer start pmd threads on demand for each numa node. This made > the code very complicated and introduced a lot of bugs. > * The pmd threads state is now internal to dpif-netdev and it's not stored in > ovs-numa. > * There's now a single function that handles pmd threads/ports changes: this > reduces code duplication and makes port reconfiguration faster, as we don't > have to bring down the whole datapath. > > v3->v2: > > * Rebased: > * Rebased against dpdk arbitrary name change. > * Dropped unsigned 'core_id' commit because a similar fix is already > on master > * Put space between *FOR_EACH* and ( > * Actually use new FOR_EACH_NUMA_ON_DUMP > * Use hmap_contains() instead of dp_netdev_lookup_port() in a couple of > places > * Restore spaces in log messages, lost while wrapping the string. > > v1->v2: > > * Postpone cls deletion in dp_netdev_destroy_pmd() > * Allow ports to be in tnl_port_cache and send_port_cache at the same time > * Set counter to 1025 when reloading pmd without queues to be polled > * Rebased: > * Allow 0x in pmd-cpu-mask > * ... > * Don't duplicate get_core_by_core_id() in get_cpu_core() > * New commit for ovs-numa: don't use hmap_first_with_hash() > * Keep per numa count of cores in ovs_numa_dump > * Print queue id and port name in warning if there's no pmd thread > * Extract pmd_remove_stale_ports() from reconfigure_datapath() > * s/reload_all_pmds()/reload_affected_pmds()/ > * Declare variables at the beginning of the block in rxq_scheduling() > * Use 'q' instead of 'port->rxqs[qid]' in a couple of places > * Unref pmd in rxq_scheduling() > * Simplify check for changed pmd threads > * Properly reset queues to unassigned in reconfigure_datapath() > * Optimize tx port insertion in pmd cache > > > Daniele Di Proietto (18): > dpif-netdev: Fix memory leak. > dpif-netdev: Take non_pmd_mutex to access tx cached ports. > dpif-netdev: Don't try to output on a device without txqs. > netdev-dpdk: Don't call rte_dev_stop() in update_flags(). > netdev-dpdk: Start also dpdkr devices only once on port-add. > netdev-dpdk: Refactor construct and destruct. > dpif-netdev: Use a boolean instead of pmd->port_seq. > dpif-netdev: Block pmd threads if there are no ports. > dpif-netdev: Create pmd threads for every numa node. > dpif-netdev: Make 'static_tx_qid' const. > dpctl: Avoid making assumptions on pmd threads. > ovs-numa: New ovs_numa_dump_contains_core() function. > ovs-numa: Add new dump types. > ovs-numa: Don't use hmap_first_with_hash(). > ovs-numa: Add per numa and global counts in dump. > dpif-netdev: Use hmap for poll_list in pmd threads. > dpif-netdev: Centralized threads and queues handling code. > ovs-numa: Remove unused functions. > > lib/dpctl.c | 107 +--- > lib/dpif-netdev.c | 1427 > ++++++++++++++++++++++++++++------------------------- > lib/dpif.c | 6 +- > lib/dpif.h | 12 +- > lib/netdev-dpdk.c | 170 +++---- > lib/netdev.c | 41 +- > lib/netdev.h | 1 + > lib/ovs-numa.c | 284 +++++------ > lib/ovs-numa.h | 35 +- > tests/pmd.at | 49 +- > vswitchd/bridge.c | 2 + > 11 files changed, 1079 insertions(+), 1055 deletions(-) > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
