[ovs-discuss] [ovs-dev] Question about other_config : pmd-cpu-mask options

Junguk Cho jmanbal at gmail.com
Thu Sep 8 20:47:58 UTC 2016


Hi, Mauricio.

Oh, I accidently dropped the the list.
Thank you for reply.

Thanks,
Junguk

2016-09-08 14:26 GMT-06:00 Mauricio Vasquez <mauricio.vasquez at polito.it>:

> Hi,
>
> Please don't drop the list, it could be interesting to more people.
> On 09/08/2016 06:55 PM, Junguk Cho wrote:
>
> Hi, Mauricio.
>
> Thank you for reply.
> I have following questions.
>
> Are you using physical ports?
> If yes, are they physically connected to socket1?
>
> Currently, I did not add physical ports. I just add ring devices.
> However, later I will use physcal ports also.
> How will I know physical port is connected to socket1?
>
> You should get the pci address of the device (using lspci for example) and
> then you can use
> cat /sys/bus/pci/devices/.../numa_node
>
> In addition, if it is connected into socket1, it may uses multiple sockets.
> Is it right?
>
> I am not totally sure about it, I think that ovs only creates PMD threads
> in the same socket of the device, it is a bad idea to process the packets
> in another socket as them would have to pass from one processor to another
> reducing the performance.
>
>
>
> I am planning to both sockets for multiple ring devices.
> Would you please elaborate " but due to DPDK limitations it is not
> possible to implemented it in a clean way right now"?
>
> There are two limitations basically, the first one is that the socket of a
> ring device can only be specified at creation time,  the second one is that
> a ring device can not be destroyed.
> Unfortunately, in ovs there is not a way to select the socket of the
> device when creating it, so the implementation would require to first
> create the device and then change the socket of it, what is not possible.
>
> The only idea that I have on mind is to use the name of the device in
> order to determine the socket where it has to be created, a cleaner
> solution requires further support of DPDK,
>
> Regards,
>
> Mauricio V.
>
>
> Thanks,
> Junguk
>
> 2016-09-08 10:05 GMT-06:00 Mauricio Vasquez <mauricio.vasquez at polito.it>:
>
>> Hi Junguk,
>>
>> On 09/08/2016 05:07 PM, Junguk Cho wrote:
>>
>> Hi, I used OVS with dpdk.
>>
>> When I started ovs, I used this option to pin some cores for ovs.
>> sudo ovs-vsctl --no-wait set Open_vSwitch .
>> other_config:pmd-cpu-mask=0xf0000000
>>
>> In my setup, it has two sockets, but with this option, two cores in first
>> socket shows 100% cpu utilization.
>>
>> Are you using physical ports? If yes, are they physically connected to
>> socket1?
>>
>> In addition, when I created dpdk ring
>> devices, they are created in only first socket.
>>
>> Does current version of OVS with dpdk support multiple sockets?
>>
>> Yes and not, it is supported for dpdk physical ports. Unfortunately dpdkr
>> ports are only created in the first socket, the code should be modified to
>> create them in other socket. Some time ago I was thinking on a solution for
>> it, but due to DPDK limitations it is not possible to implemented it in a
>> clean way right now. If you only need to have rings in the second socket,
>> you just have to change the socket parameter in the call to rte_eth_from_rings(),
>> on the other hand, if you need to have rings on both sockets it could be
>> possible to implement a logic based on the port number, something like
>> rings from 0 to 99 are processed in socket0 and from 100 to 199 in socket1.
>> Of course these are just workarounds that could not be integrated in ovs.
>>
>> If so, are there other options to use both?
>>
>>
>> Thanks,
>> Junguk
>> _______________________________________________
>> dev mailing listdev at openvswitch.orghttp://openvswitch.org/mailman/listinfo/dev
>>
>> Mauricio V,
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160908/a98a5c7b/attachment-0002.html>


More information about the discuss mailing list