[ovs-dev] [PATCH 1/3] dpif-netdev: Reload each thread only once in do_add_port.

Daniele Di Proietto diproiettod at vmware.com
Tue Feb 23 02:17:36 UTC 2016


Thanks for the patch and the review!

I applied this to master

On 18/02/2016 12:19, "Flavio Leitner" <fbl at sysclose.org> wrote:

>On Mon, 08 Feb 2016 18:30:29 +0300
>Ilya Maximets <i.maximets at 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.maximets at 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 <fbl at sysclose.org>
>
>-- 
>fbl
>




More information about the dev mailing list