Monitoring Datapath CPU utilization in DPDK Mode

Since DPDK runs in poll mode, it always shows the CPU utilization is 100% utilized. To verify this use sfe platform command and see what percentage of CPU is used for packet processing.

switch#platform sfe bessctl
shType "help" for more information.
localhost:10514 $ show busy
 Worker IDBusy PPS
 0 0 0
 1 0 0
 2 0 0
localhost:10514 $ show busy
 Worker IDBusy PPS
 0 0 0
 1 0 0
 2 0 0

In addition to this, a syslog message is logged if the CPU utilization is over 80% for 60 seconds, all the while doing useful packet processing.


2019-10-28 23:44:11.7769098908 Log 
0 %SFE-4-CORE_SUSTAINED_BUSY: Software Data Plane Forwarding service is experiencing heavy load as it has been80 percent busy over last 60 seconds
2019-10-29 15:54:53.3942848908 Log 
0 %SFE-4-CORE_SUSTAINED_BUSY: Software Data Plane Forwarding service is experiencing heavy load as it has been80 percent busy over last 60 seconds
Note: That these features are for capacity planning and are intended to be used _after_ high CPU alarms are turned off in the hypervisor. Sfe/DPDK runs at 100 % always, and if the alarms are turned off, then this is the way to distinguish between CPU usage due to useful packet processing task and idle spin.