Thanks for the patch and the review! I applied this to master
On 18/02/2016 12:19, "Flavio Leitner" <f...@sysclose.org> wrote: >On Mon, 08 Feb 2016 18:30:29 +0300 >Ilya Maximets <i.maxim...@samsung.com> wrote: > >> While adding of pmd interface with multiple queues several queues >> may be assigned to one thread and this thread will be reloaded >> one time for each added queue. >> >> Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> >> --- >> lib/dpif-netdev.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c >> index 1b9793b..c477f2b 100644 >> --- a/lib/dpif-netdev.c >> +++ b/lib/dpif-netdev.c >> @@ -43,6 +43,7 @@ >> #include "flow.h" >> #include "cmap.h" >> #include "coverage.h" >> +#include "hmapx.h" >> #include "latch.h" >> #include "list.h" >> #include "match.h" >> @@ -1139,7 +1140,10 @@ do_add_port(struct dp_netdev *dp, const char >>*devname, const char *type, >> if (netdev_is_pmd(netdev)) { >> int numa_id = netdev_get_numa_id(netdev); >> struct dp_netdev_pmd_thread *pmd; >> + struct hmapx to_reload; >> + struct hmapx_node *node; >> >> + hmapx_init(&to_reload); >> /* Cannot create pmd threads for invalid numa node. */ >> ovs_assert(ovs_numa_numa_id_is_valid(numa_id)); >> >> @@ -1155,8 +1159,14 @@ do_add_port(struct dp_netdev *dp, const char >>*devname, const char *type, >> ovs_mutex_lock(&pmd->poll_mutex); >> dp_netdev_add_rxq_to_pmd(pmd, port, port->rxq[i]); >> ovs_mutex_unlock(&pmd->poll_mutex); >> + >> + hmapx_add(&to_reload, pmd); >> + } >> + HMAPX_FOR_EACH (node, &to_reload) { >> + pmd = (struct dp_netdev_pmd_thread *)node->data; >> dp_netdev_reload_pmd__(pmd); >> } >> + hmapx_destroy(&to_reload); >> } >> seq_change(dp->port_seq); >> > >Acked-by: Flavio Leitner <f...@sysclose.org> > >-- >fbl > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev