[ovs-discuss] OVS-DPDK - threads roles/functionality
Boaron, Yossi (Nokia - IL)
yossi.boaron at nokia.com
Sun Jan 24 14:05:26 UTC 2016
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 at 01D156C1.08AB3590]
Output of relevant commands :
[root at 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160124/d7bea13a/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 39234 bytes
Desc: image002.png
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160124/d7bea13a/attachment-0002.png>
More information about the discuss
mailing list