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.vasq...@polito.it <mailto:mauricio.vasq...@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 list
    d...@openvswitch.org <mailto:d...@openvswitch.org>
    http://openvswitch.org/mailman/listinfo/dev
    <http://openvswitch.org/mailman/listinfo/dev>
    Mauricio V,

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to