how to get best performance of dpdk on ls1043?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to get best performance of dpdk on ls1043?

Jump to solution
1,735 Views
yongquan
Contributor I

Hi :

   I try to get best performance of l2fwd on ls1043, I have found serveral points but still confused. 

- uboot:

  setenv othbootargs console=ttyS0,115200 ramdisk_size=0x10000000 bportals=s0 qportals=s0 isolcpus=1-3 default_hugepagesz=2m hugepagesz=2m hugepages=448 nmi_watchdog=0 rcupdate.rcu_cpu_stall_suppress=1

  whether hugepages is more big more better ?

  what is the meaning of nmi_watchdong=0 ?

  what is the meaning of   rcupdate.rcu_cpu_stall_suppress=1?

 

- fmc configure

export DPAA_NUM_RX_QUEUES=1

what is the meaning of DPAA_NUM_RX_QUEUES? can it be set 2 or more?

 

My goal is to improve performance using l2fwd or testpmd to avoid loss packet while forwarding?

Could the nxp engineers offer some advice?

 

Thanks in advance.

@yipingwang

0 Kudos
1 Solution
1,721 Views
bpe
NXP Employee
NXP Employee


Suggestions for setting up for the optimal DPDK performance can be found in
LSDK online documentation:

https://docs.nxp.com/bundle/GUID-51EEFEDB-ABD5-40C0-BEBD-6527B3494D57/page/GUID-AD9EFB28-7C53-4D17-B...

The same article explains rcupdate.rcu_cpu_stall_suppress parameter.

DPAA_NUM_RX_QUEUES is explained here:

https://docs.nxp.com/bundle/GUID-51EEFEDB-ABD5-40C0-BEBD-6527B3494D57/page/GUID-DD36538C-486D-43D4-8...


You can play with hugepages parameter but you should not expect linear performance
grows when you increase it. LSDK documentation offers the optimal value based on
the size of memory on the development system and other software memory requirements.
More details on this parameter can be found in generic Linux documentation:


https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/admin-guide/m...

https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/arm64/hugetlb...


The rest can be found in the kernel parameters description:

https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/admin-guide/k...

 

Hope this helps

Platon

View solution in original post

0 Kudos
3 Replies
560 Views
bhargavjayswal
Contributor III

Hi Platon,

 

Above link are not working, could please update latest links.

 

Regards,

Bhargav Jayswal

0 Kudos
1,718 Views
yongquan
Contributor I

thank you for your answer sincerely @bpe 

I have a few more questions.

1. If increase DPAA_NUM_RX_QUEUES from 1 to 4, does it enhance performance? and what's the maximum value?

2. Does ls1043 can use 4-core for running DPDK?

Read from "DPDK Performance Reproducibility Guide"  :

"rcupdate.rcu_cpu_stall_suppress=1 is specifically for cases where Core 0 is also used for running DPDK I/O with
enable_performance_mode.sh script - where because of Real Time priority setting of the script, RCU stalls might be
observed. That leads to screen dump which might impact performance."

Does ls1043 can set isolcpus=1-4 for dpdk? If yes,how we configure it and make it work?

0 Kudos
1,722 Views
bpe
NXP Employee
NXP Employee


Suggestions for setting up for the optimal DPDK performance can be found in
LSDK online documentation:

https://docs.nxp.com/bundle/GUID-51EEFEDB-ABD5-40C0-BEBD-6527B3494D57/page/GUID-AD9EFB28-7C53-4D17-B...

The same article explains rcupdate.rcu_cpu_stall_suppress parameter.

DPAA_NUM_RX_QUEUES is explained here:

https://docs.nxp.com/bundle/GUID-51EEFEDB-ABD5-40C0-BEBD-6527B3494D57/page/GUID-DD36538C-486D-43D4-8...


You can play with hugepages parameter but you should not expect linear performance
grows when you increase it. LSDK documentation offers the optimal value based on
the size of memory on the development system and other software memory requirements.
More details on this parameter can be found in generic Linux documentation:


https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/admin-guide/m...

https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/arm64/hugetlb...


The rest can be found in the kernel parameters description:

https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/Documentation/admin-guide/k...

 

Hope this helps

Platon

0 Kudos