This issue is resolved in VMware NSX 3.2.3 and 4.1.1, available at
VMware downloads.
Workaround:
There are two workarounds:
1. Place the impacted BME(s) in and out of maintenance mode, which will essentially, restart the
datapath service. This may need to be repeated multiple times.
2. Use the following steps to manually configure the CPU affinity for the KNI thread.
2.(a). As admin user, run the command "get dataplane | find Corelist" to discover all datapath cores.
bm-edge-1> get dataplane | find Corelist
Corelist : 0,4,8,12,10,6,2,16,20,24,22,18,14,28,32,36,38,34,30,26,40,44,48,50,46,42
2.(b). View the file
/var/run/vmware/edge/cpu_usage.json, go to the very bottom of the file and view the usage of non-DPDK cores, like below:
"non_dpdk_cpu_per_core": {
"1": 100.0,
"3": 9.01,
"5": 5.88,
"7": 1.19,
"9": 0.97,
"11": 0.98,
"13": 0.91,
"15": 1.09,
"17": 1.26,
"19": 0.9,
"21": 0.95,
"23": 0.89,
"25": 1.02,
"27": 0.79,
"29": 0.75,
"31": 0.8,
"33": 0.93,
"35": 0.91,
"37": 0.9,
"39": 0.73,
"41": 0.87,
"43": 0.7,
"45": 0.81,
"47": 0.63,
"49": 0.88,
"51": 0.88
Under normal circumstances, there should be two non-DPDK cores running high usage. If the issue is present, there will be only one non-DPDK core running at high usage.
Select a non-DPDK core
NOT running high usage, for example core 3 from above '
"3": 9.01,'.
The non-DPDK core you select, should also
NOT show up in the output from step 2.(a) above.
2.(c). On the edge, as root user, run
"ps aux | grep kni" to find the PID for KNI thread:
bm-edge-1:~# ps aux | grep kni
root 17901 97.8 0.0 0 0 ? R Aug10 12648:14 [kni_single]
2.(d). Use the command '
taskset -apc <non-DPDK core found in 2.(b)> <PID found in 2.(c)>'
bm-edge-1:~# taskset -apc 3 17901
pid 17901's current affinity list: 0-51
pid 17901's new affinity list: 3
Note: No service restart is needed in this second workaround.