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