nanog mailing list archives

Re: DPDK and energy efficiency


From: Etienne-Victor Depasquale <edepa () ieee org>
Date: Tue, 23 Feb 2021 23:43:02 +0100


This comes from OVS code and shows OVS thread spinning, not DPDK PMD.
Blame the OVS application for not using e.g. _mm_pause() and burning
the CPU like crazy.



OK, I'm citing a bit more from the same reference:
*"By tracing back to the function’s caller *
*in the PMD thread main(void *f_), *
we found that the thread kept spinning on the following code block:
for ( ; ; ) {
for ( i = 0; i < poll_cnt; i ++) {
dp_netdev_process_rxq_port (pmd, list[i].port, poll_list[i].rx) ;
}
}
This indicates that the [PMD] thread was continuously
monitoring and executing the receiving data path."

Cheers,

Etienne

On Tue, Feb 23, 2021 at 10:33 PM Pawel Malachowski <
pawmal-nanog () freebsd lublin pl> wrote:

No, it is not PMD that runs the processor in a polling loop.
It is the application itself, thay may or may not busy loop,
depending on application programmers choice.

From one of my earlier references [2]:

"we found that a poll mode driver (PMD)
thread accounted for approximately 99.7 percent
CPU occupancy (a full core utilization)."

And further on:

"we found that the thread kept spinning on the following code block:

*for ( ; ; ) {for ( i = 0; i < poll_cnt; i ++)
{dp_netdev_process_rxq_port
(pmd, list[i].port, poll_list[i].rx) ;}}*
This indicates that the thread was continuously
monitoring and executing the receiving data path."

This comes from OVS code and shows OVS thread spinning, not DPDK PMD.
Blame the OVS application for not using e.g. _mm_pause() and burning
the CPU like crazy.


For comparison, take a look at top+i7z output from DPDK-based 100G DDoS
scrubber currently lifting some low traffic using cores 1-13 on 16 core
host. It uses naive DPDK::rte_pause() throttling to enter C1.

Tasks: 342 total,   1 running, 195 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.6 us,  0.6 sy,  0.0 ni, 89.7 id,  3.1 wa,  0.0 hi,  0.0 si,
0.0 st

        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %
 C6 %  Temp      VCore
        Core 1 [0]:       1467.73 (14.68x)      2.15    5.35       1
92.3    43      0.6724
        Core 2 [1]:       1201.09 (12.01x)      11.7    93.9       0
 0    39      0.6575
        Core 3 [2]:       1200.06 (12.00x)      11.8    93.8       0
 0    42      0.6543
        Core 4 [3]:       1200.14 (12.00x)      11.8    93.8       0
 0    41      0.6549
        Core 5 [4]:       1200.10 (12.00x)      11.8    93.8       0
 0    41      0.6526
        Core 6 [5]:       1200.12 (12.00x)      11.8    93.8       0
 0    40      0.6559
        Core 7 [6]:       1201.01 (12.01x)      11.8    93.8       0
 0    41      0.6559
        Core 8 [7]:       1201.02 (12.01x)      11.8    93.8       0
 0    43      0.6525
        Core 9 [8]:       1201.00 (12.01x)      11.8    93.8       0
 0    41      0.6857
        Core 10 [9]:      1201.04 (12.01x)      11.8    93.8       0
 0    40      0.6541
        Core 11 [10]:     1201.95 (12.02x)      13.6    92.9       0
 0    40      0.6558
        Core 12 [11]:     1201.02 (12.01x)      11.8    93.8       0
 0    42      0.6526
        Core 13 [12]:     1204.97 (12.05x)      17.6    90.8       0
 0    45      0.6814
        Core 14 [13]:     1248.39 (12.48x)      28.2    84.7       0
 0    41      0.6855
        Core 15 [14]:     2790.74 (27.91x)      91.9       0       1
 1    41      0.8885 <-- not PMD
        Core 16 [15]:     1262.29 (12.62x)      13.1    34.9     1.7
56.2    43      0.6616

$ dataplanectl stats fcore | grep total
fcore total idle 393788223887 work 860443658 (0.2%) (forced-idle
7458486526622) recv 202201388561 drop 61259353721 (30.3%) limit 269909758
(0.1%) pass 140606076622 (69.6%) ingress 66048460 (0.0%/0.0%) sent
162580376914 (80.4%/100.0%) overflow 0 (0.0%) sampled 628488188/628488188



--
Pawel Malachowski
@pawmal80



-- 
Ing. Etienne-Victor Depasquale
Assistant Lecturer
Department of Communications & Computer Engineering
Faculty of Information & Communication Technology
University of Malta
Web. https://www.um.edu.mt/profile/etiennedepasquale

Current thread: