10 Star 4 Fork 34

src-openEuler/gazelle

 / 详情

【22.03 LTS SP1】【易用】设置大包包长10M启动benchmark服务端时,mbuf_pool_size配置为333107200启动会发生coredump

已完成
缺陷
创建于  
2022-12-16 18:02

【标题描述】设置大包包长10M启动benchmark服务端时,mbuf_pool_size配置为333107200启动会发生coredump
【环境信息】
openeulerversion=openEuler-22.03-LTS-SP1
compiletime=2022-11-28-18-10-14
gccversion=10.3.1-16.oe2203sp1
kernelversion=5.10.0-129.0.0.69.oe2203sp1
openjdkversion=1.8.0.352.b08-3.oe2203sp1
dpdk版本:dpdk-21.11-26.oe2203sp1.x86_64
gazelle版本:gazelle-1.0.1-29.oe2203sp1.x86_64

【问题复现步骤】
lstack配置如下
dpdk_args=["--socket-mem", "1000,0,0,0", "--huge-dir", "/mnt/hugepages-2M", "--proc-type", "primary", "--legacy-mem", "--map-perfect"]
use_ltran=0
kni_switch=0
low_power_mode=0
num_cpus="2"
num_wakeup="2"
numa_bind=1
host_addr="124.88.80.117"
mask_addr="255.255.0.0"
gateway_addr="124.88.0.1"
devices="24:a5:2c:d1:f0:8f"

send_connect_number = 8
read_connect_number = 8
rpc_number = 8
nic_read_number = 128
mbuf_pool_size=333107200

启动benchmark服务端
./benchmark_usr -sMode dn -pSize 0 -mSize 1048576 -pdSize 1 -cTimes 0 -uSocket 1 -mSq 0 -pol 1 -md5Check 0

出现概率(是否必现,概率性错误)
100%

【预期结果】
设置提供说明,或者满足大小的话,应该可以正常启动

【实际结果】
[root@openEuler gazelle]# ./benchmark_usr -sMode dn -pSize 0 -mSize 1048576 -pdSize 1 -cTimes 0 -uSocket 1 -mSq 0 -pol 1 -md5Check 0
dpdk argv: --socket-mem 1000,0,0,0 --huge-dir /mnt/hugepages-2M --proc-type primary --legacy-mem --map-perfect
EAL: Detected CPU lcores: 96
EAL: Detected NUMA nodes: 4
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available 2048 kB hugepages reported
EAL: No available 32768 kB hugepages reported
EAL: No available 64 kB hugepages reported
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_hinic (19e5:1822) device: 0000:03:00.0 (socket 0)
net_hinic: Initializing pf hinic-0000:03:00.0 in primary process
net_hinic: Device 0000:03:00.0 hwif attribute:
net_hinic: func_idx: 0, p2p_idx: 0, pciintf_idx: 0, vf_in_pf: 0, ppf_idx: 0, global_vf_id: 15, func_type: 2
net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2
net_hinic: Get public resource capability:
net_hinic: host_id: 0x0, ep_id: 0x0, intr_type: 0x0, max_cos_id: 0x7, cos_bitmap: 0x17, er_id: 0x0, port_id: 0x0
net_hinic: host_total_function: 0xf4, host_oq_id_mask_val: 0x8, max_vf: 0x3c
net_hinic: chip_svc_type: 0x3
net_hinic: pf_num: 0x4, pf_id_start: 0x0, vf_num: 0xf0, vf_id_start: 0x10
net_hinic: Get share resource capability:
net_hinic: host_pctxs: 0x0, host_cctxs: 0x0, host_scqs: 0x0, host_srqs: 0x0, host_mpts: 0x0
net_hinic: Get l2nic resource capability:
net_hinic: max_sqs: 0x10, max_rqs: 0x10, vf_max_sqs: 0x4, vf_max_rqs: 0x4
net_hinic: Default cos 4
net_hinic: Initialize 0000:03:00.0 in primary successfully
TELEMETRY: No legacy callbacks, legacy socket not created
LSTACK: create_control_thread:246 create control_easy_thread success
LSTACK: lstack_sig_default_handler:59 lstack dumped,caught signal:11
LSTACK: dump_stack:42 /usr/lib64/liblstack.so(+0x10a44) [0xffff83d0ea44]
LSTACK: dump_stack:42 /usr/lib64/liblstack.so(+0x10b1c) [0xffff83d0eb1c]
LSTACK: dump_stack:42 linux-vdso.so.1(__kernel_rt_sigreturn+0) [0xffff8434a8ec]
LSTACK: dump_stack:42 /usr/lib64/librte_mempool_ring.so.22(+0xf1c) [0xffff8391df1c]
LSTACK: dump_stack:42 /usr/lib64/librte_mempool.so.22(rte_mempool_op_populate_helper+0x108) [0xffff83944218]
LSTACK: dump_stack:42 /usr/lib64/librte_mempool.so.22(rte_mempool_populate_iova+0xd0) [0xffff839419d0]
LSTACK: dump_stack:42 /usr/lib64/librte_mempool.so.22(rte_mempool_populate_virt+0x1cc) [0xffff83941d50]
LSTACK: dump_stack:42 /usr/lib64/librte_mempool.so.22(rte_mempool_populate_default+0x220) [0xffff83942230]
LSTACK: dump_stack:42 /usr/lib64/librte_mbuf.so.22(rte_pktmbuf_pool_create_by_ops+0x98) [0xffff8314ab18]
LSTACK: dump_stack:42 /usr/lib64/liblstack.so(+0x28260) [0xffff83d26260]
LSTACK: dump_stack:42 /usr/lib64/liblstack.so(pktmbuf_pool_init+0x3c) [0xffff83d266cc]
LSTACK: dump_stack:42 /usr/lib64/liblstack.so(+0x2fddc) [0xffff83d2dddc]
LSTACK: dump_stack:42 /usr/lib64/libc.so.6(+0x7f400) [0xffff83b0c400]
LSTACK: dump_stack:42 /usr/lib64/libc.so.6(+0xe551c) [0xffff83b7251c]
Segmentation fault (core dumped)

【附件信息】
NA

评论 (2)

chenshijuan3 创建了缺陷

Hi chenshijuan3, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: sig-high-performance-network, and any of the maintainers: @L.X. , @LemmyHuang , @sky , @李扬扬 , @吴昌盛 , @jinag12 , @lilijun , @李辉松

问题:当mbuf_pool_size配置得足够大时,dpdk的内存申请失败会产生coredump;
原因:需要对mbuf_pool_size做最大值限制;
修改:将mbuf_pool_size限制到合理的范围内,目前为(0,5120000];

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(3)
5329419 openeuler ci bot 1632792936
1
https://gitee.com/src-openeuler/gazelle.git
git@gitee.com:src-openeuler/gazelle.git
src-openeuler
gazelle
gazelle

搜索帮助

Cb406eda 1850385 E526c682 1850385