Hi All,
My name is Yossi , I'm doing these days my first steps in the 'OVS world' , 
focusing on OVS-DPDK , for openstack environment.
I have found the forum/mail list archive discussions  very efficient for 
understanding/clarifying  OVS-DPDK open issues.

I'm running  OVS -  2.4  and  DPDK - 2.0
My environment (open stack compute) includes , as appears in below diagram:

A.      A single  guest VM's (vhost usr).

B.      Physical NIC, assigned to DPDK (using dpdk_nic_bind.py).



[cid:image002.png@01D156C1.08AB3590]
Output of relevant commands :


[root@overcloud-novacompute-0 ~]# dpdk_nic_bind.py --status

Network devices using DPDK-compatible driver
============================================
0000:04:00.1 '82576 Gigabit Network Connection' drv=uio_pci_generic unused=

Network devices using kernel driver
===================================
0000:04:00.0 '82576 Gigabit Network Connection' if=enp4s0f0 drv=igb 
unused=uio_pci_generic *Active*
Other network devices
=====================
[root@overcloud-novacompute-0 ~]# ovs-vsctl  show
9d6a914b-748b-4699-93fa-f29d0668b182
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
        Port "phy-br0"
            Interface "phy-br0"
                type: patch
                options: {peer="int-br0"}
    Bridge br-int
        fail_mode: secure
        Port "int-br0"
            Interface "int-br0"
                type: patch
                options: {peer="phy-br0"}
        Port "vhu9533ac89-d1"
            tag: 3
            Interface "vhu9533ac89-d1"
                type: dpdkvhostuser
                Port br-int
            Interface br-int
                type: internal
            ovs_version: "2.4.0"


Ø  ovs-vsctl set Open_vSwitch .  other_config:pmd-cpu-mask=1
The thread list under the vswitchd process is as follows:

Ø  ps -T -p 19920
19920 19920 ?        00:04:38 ovs-vswitchd
19920 19921 ?        00:00:31 dpdk_watchdog2
19920 19922 ?        00:00:07 vhost_thread1
19920 19923 ?        00:00:00 urcu3
19920 19988 ?        00:00:00 handler18
19920 19989 ?        00:00:00 handler28
19920 19990 ?        00:00:00 handler24
19920 19991 ?        00:00:00 handler25
19920 19992 ?        00:00:00 handler27
19920 19994 ?        00:00:00 handler23
19920 19999 ?        00:00:00 handler29
19920 20000 ?        00:00:00 handler19
19920 20001 ?        00:01:32 revalidator22
19920 20002 ?        00:01:03 revalidator20
19920 20003 ?        00:01:04 revalidator26
19920 20007 ?        00:01:02 revalidator21
19920 28281 ?        3-18:38:47 pmd59

I'm trying to understand the different threads role/functionality,

1.       Could you please explain what's the role of handlerxx , revalidatorxx 
, urcu3, dpdk_watchdog2  threads ?



2.       Pmdxx threads , should continuously poll for new packets on specific 
NIC/Rx Q , and process the packet , is it correct ?





3.       The vhost_thread1  is continuously  polling for Rx packets form guest 
VM , and process them , is it correct ?



4.       Could you please explain on which thread/threads context each one of 
the following scenarios is executed :





a.        NIC ---> OVS --> guest VM : Packet  received in physical NIC 
(Destination is guest VM)



b.      Guest VM --> OVS --> NIC  out of compute : packet generated in guest VM





c.       Assuming that I'll create a second guest VM , Guest VM#1 --> OVS --> 
guest vm#2
Your assistance is highly appreciated.
Many thanks in advance
Yossi






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

Reply via email to