Unexpected behavior when using mbuf pool with external buffers

Michał Niciejewski michal.niciejewski at codilime.com
Wed Dec 22 17:30:24 CET 2021


Thank you for the replay,

On Wed, Dec 22, 2021 at 11:24 AM Van Haaren, Harry
<harry.van.haaren at intel.com> wrote:
> I'll "top post" on this reply as the content is in HTML format below. In future, please try to send plain-text emails to DPDK mailing lists.

I hope it's better now.

> Estimating and talking is never conclusive – lets measure using Linux "Perf" tool. Run this command 3x, just like you posted the drop stats below.
>
> I expect to see lower dTLB-load-misses on the first run (no drops, 10 mpps), and that the dTLB misses are higher for 15 mpps *and* for 10 mpps again afterwards.
>
> perf stat -e cycles,dTLB-load-misses -C <datapath_lcore_here> -- sleep 1

extbuf, aligned_alloc, 10mpps, first run
 Performance counter stats for 'CPU(s) 0':
       2404553948      cycles
              461      dTLB-load-misses
      1.001938861 seconds time elapsed

extbuf, aligned_alloc, 15mpps
 Performance counter stats for 'CPU(s) 0':
       2404518710      cycles
              466      dTLB-load-misses
      1.001920171 seconds time elapsed

extbuf, aligned_alloc, 10mpps, second run
 Performance counter stats for 'CPU(s) 0':
       2402586106      cycles
              449      dTLB-load-misses
      1.001114692 seconds time elapsed

I also checked what happens when there is no traffic at all and the
results are similar:

 Performance counter stats for 'CPU(s) 0':
       2949935339      cycles
              465      dTLB-load-misses
      1.002236168 seconds time elapsed

Also, I checked how the application behaves when adding --no-huge
option and using a normal mbuf pool. The results are very different
compared to aligned_alloc + extbuf mbuf pool:

10mpps, --no-huge
 Performance counter stats for 'CPU(s) 0':
       2402616160      cycles
         17980033      dTLB-load-misses
      1.001125954 seconds time elapsed

Application logs:
Queue: 0
Number of all rx burst calls: 5757205
Number of non-zero rx burst calls: 1073081
Avg pkt nb received per rx burst: 1.7364
All received pkts: 9996804
All sent pkts: 8074460
All dropped pkts: 1922344

-- 

Michał Niciejewski

Junior Software Engineer

michal.niciejewski at codilime.com



CodiLime Sp. z o.o. - Ltd. company with its registered office in
Poland, 02-493 Warsaw, ul. Krancowa 5.
Registered by The District Court for the Capital City of Warsaw, XII
Commercial Department of the National Court Register.
Entered into National Court Register under No. KRS 0000388871. Tax
identification number (NIP) 5272657478. Statistical number (REGON)
142974628.

-- 


-------------------------------
This document contains material that is 
confidential in CodiLime Sp. z o.o. DO NOT PRINT. DO NOT COPY. DO NOT 
DISTRIBUTE. If you are not the intended recipient of this document, be 
aware that any use, review, retransmission, distribution, reproduction or 
any action taken in reliance upon this message is strictly prohibited. If 
you received this in error, please contact the sender and help at codilime.com 
<mailto:help at codilime.com>. Return the paper copy, delete the material from 
all computers and storage media.


More information about the users mailing list