NXP MCU 技术william hill官网
直播中

剪刀脚

8年用户 856经验值
私信 关注
[问答]

LX2160 dpaa2配置导致内核dpio内部错误怎么解决?


我们使用 dynamic_dpl.sh 脚本来配置 dpaa2 配置,它会导致 CPU15 上的 irq/dpio 内部错误。
系统采用LSDK20.04(内核5.4和4.19)搭建,网络配置如下。
root@localhost:~# ls-listni
dprc.1/dpni.1 (interface: eth0, end point: dpmac.3)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.6)
root@localhost :~# ls-listmac
dprc.1/dpmac.17
dprc.1/dpmac.6 (终点: dpni.0) <--- XFI
dprc.1/dpmac.5
dprc.1/dpmac.4  
dprc.1 /dpmac.3(终点:dpni.1)<--- XGMII
dprc.1/dpmac.2

两个 dpni 接口都是链接并使用 ssh 通过 eth0(dpni.1) 登录系统并执行以下命令。
echo dpni.0 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind
restool dpni destroy dpni.0
/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni dpni

执行命令后,内核显示有关 irq/dpio 的内部错误
Jun 5 10:22:21 localhost  kernel: [ 77.728739] fsl_dpaa2_eth dpni.0 eth1: Link Event: state down
Jun 5 10:22:21 localhost  kernel: [ 78.434085] fsl_dpaa2_eth dpni.0: Dropping the链接到 dpbp.0
Jun 5 10:22:21 localhost  kernel: [ 78.434095] fsl_dpaa2_eth dpni.0: Droping the link to dpio.15 Jun
5 10:22:21 localhost  kernel: [ 78.435104] fsl_dpaa2_eth dpni.0:删除指向 dpcon.13 Jun 5 10:22:21 localhost  内核:[ 78.435109] fsl_dpaa2_eth dpni.0:删除指向 dpio.14 Jun 5 10:22:21 localhost
的链接
内核:[78.436180] fsl_dpaa2_eth dpni.0:删除指向 dpcon.12 的链接
Jun 5 10:22:21 localhost  内核:[78.436185] fsl_dpaa2_eth dpni.0:删除指向 dpio.13 的链接
Jun 5 10:22:21 localhost  kernel: [ 78.437217] fsl_dpaa2_eth dpni.0: Dropping the link to dpcon.11
Jun 5 10:22:21 localhost  kernel: [ 78.437226] fsl_dpaa2_eth dpni.0: Dropping dpio.12 Jun 5 10:22:21 localhost  内核的链接
:[ 78.438235] fsl_dpaa2_eth dpni.0:删除 dpcon.10 Jun 5 10:22:21 localhost  内核的链接
:[ 78.438240] fsl_dpaa2_eth dpni.0:删除指向 dpio.11 Jun 5 10:22:21 localhost  内核:[78.439292] fsl_dpaa2_eth dpni.0:删除指向 dpcon.9 Jun 5 10:22:21 localhost
的链接
> 内核:[78.439297] fsl_dpaa2_eth dpni.0:删除指向 dpio.10 的链接
Jun 5 10:22:21 localhost  内核:[78.440304] fsl_dpaa2_eth dpni.0:删除指向 dpcon.8 的链接
Jun 5 10:22:21 localhost  kernel: [ 78.440308] fsl_dpaa2_eth dpni.0: Dropping the link to dpio.9
Jun 5 10:22:21 localhost  kernel: [ 78.441344] fsl_dpaa2_eth dpni.0: Dropping dpcon.7 Jun 5 10:22:21 localhost  内核的链接:[ 78.441351] fsl_dpaa2_eth dpni.0:删除 dpio.8 Jun 5 10:22:21 localhost  内核
的链接:[ 78.442405]
fsl_dpaa2_eth dpni.0:删除指向 dpcon.6 Jun 5 10:22:21 localhost  内核:[78.442410] fsl_dpaa2_eth dpni.0:删除指向 dpio.7 Jun 5 10:22:21 localhost  的
链接
> 内核:[ 78.443417] fsl_dpaa2_eth dpni.0:删除指向 dpcon.5 的链接
Jun 5 10:22:21 localhost  内核:[ 78.443421] fsl_dpaa2_eth dpni.0:删除指向 dpio.6 的链接
Jun 5 10:22:21 localhost  kernel: [ 78.444428] fsl_dpaa2_eth dpni.0: Dropping the link to dpcon.4
Jun 5 10:22:21 localhost  kernel: [ 78.444432] fsl_dpaa2_eth dpni.0: Dropping dpio.5 Jun 5 10:22:21 localhost  内核的链接
:[ 78.445459] fsl_dpaa2_eth dpni.0:删除 dpcon.3 Jun 5 10:22:21 localhost  内核的链接
:[ 78.445466] fsl_dpaa2_eth dpni.0:删除指向 dpio.4 Jun 5 10:22:21 localhost  内核:[78.446501] fsl_dpaa2_eth dpni.0:删除指向 dpcon.2 Jun 5 10:22:21 localhost
的链接
> 内核:[78.446506] fsl_dpaa2_eth dpni.0:删除指向 dpio.3 的链接
Jun 5 10:22:21 localhost  内核:[78.447513] fsl_dpaa2_eth dpni.0:删除指向 dpcon.1 的链接
Jun 5 10:22:21 localhost  kernel: [ 78.447517] fsl_dpaa2_eth dpni.0: Dropping the link to dpio.2
Jun 5 10:22:21 localhost  kernel: [ 78.448524] fsl_dpaa2_eth dpni.0: Dropping dpcon.0 的链接
Jun 5 10:22:21 localhost  kernel: [ 78.448528] fsl_dpaa2_eth dpni.0: Droping the link to dpio.1
Jun 5 10:22:21 localhost  kernel: [ 78.449570] fsl_dpaa2_eth dpni.0:删除指向 dpcon.31 Jun 5 10:22:21 localhost  内核:[78.449577] fsl_dpaa2_eth dpni.0:删除指向 dpio.0 Jun 5 10:22:22 localhost
的链接
> 内核:[ 78.450598] fsl_dpaa2_eth dpni.0:删除指向 dpcon.30 的链接
Jun 5 10:22:22 localhost  内核:[ 78.489609] fsl_dpaa2_eth dpni.0:删除指向 dpmcp.8 的链接
Jun 5 10:22:22 localhost  内核:[78.564590] iommu:从组 11 中删除设备 dpni.0
Jun 5 10:22:22 localhost  内核:[78.742824] ttyAMA ttyAMA1:2 输入溢出(s )
Jun 5 10:22:22 localhost  kernel: [ 79.308355] 无法处理虚拟地址 0000000000000048 处的内核空指针取消引用
Jun 5 10:22:22 localhost  kernel: [ 79.317130] Mem abort info:
Jun 5 10:22:22 localhost  kernel: [ 79.319912] ESR = 0x96000004
Jun 5 10:22:22 localhost  kernel: [ 79.322954] Exception class = DABT (current EL), IL = 32 bits
Jun 5 10: 22:22 localhost  kernel: [ 79.328860] SET = 0, FnV = 0
Jun 5 10:22:22 localhost  kernel: [ 79.331901] EA = 0, S1PTW = 0
Jun 5 10:22:22 localhost  kernel: [ 79.335029] Data abort info:
Jun 5 10:22:22 localhost  kernel: [ 79.337897] ISV = 0, ISS = 0x00000004
Jun 5 10:22:22 localhost  kernel: [ 79.341720] CM = 0, WnR = 0
Jun 5 10:22:22 localhost  kernel: [ 79.344676] user pgtable: 4k pages, 48-bit VAs, pgdp = 0000000062724626
Jun 5 10: 22:22 localhost  kernel: [ 79.351277] [0000000000000048] pgd=0000000000000000
Jun 5 10:22:22 localhost  kernel: [ 79.356144] Internal error: Oops: 96000004 [#1] PREEMPT SMP
6 月 5 日 10 日: 22:22 localhost  kernel: [ 79.356152] Process irq/139-dpio.0 (pid: 2300, stack limit = 0x0000000024b480eb)
Jun 5 10:22:22 localhost  kernel: [ 79.356155] CPU: 15 PID: 2300 Comm: irq/139-dpio.0 Kdump: loaded Tainted: GO 4.19.90-rt35 #1 Jun 5 10:22
: 22 localhost  kernel: [ 79.356156] Hardware name: NXP Layerscape LX2160ARDB (DT)
Jun 5 10:22:22 localhost  kernel: [ 79.356157] pstate: 00000005 (nzcv daif -PAN -UAO) Jun
5 10: 22:22 localhost  kernel: [ 79.356165] pc : dpaa2_eth_poll+0xe0/0x318
Jun 5 10:22:22 localhost  kernel: [ 79.356166] lr : dpaa2_eth_poll+0x100/0x318 Jun
5 10:22:22 localhost <警告>内核:[79.356167] sp:ffff00001222bba0
Jun 5 10:22:22 localhost <警告>内核:[79.356168] x29:ffff00001222bba0 x28:ffff8022ec170800
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356170] x27:0000000000000000 x26:ffff8022ed1b4980 6 月 5 日 10:22:22 本地
主机 <警告> 内核:[79.356171] x25:00000000000000 00 x24:0000000000000040 6 月 5 日
10:22: 22 localhost  kernel: [ 79.356173] x23: 0000000000000000 x22: 0000000000000000
Jun 5 10:22:22 localhost  kernel: [ 79.356174] x21: ffff8022ed1b4980 x20: 00 00000000000000 6 月 5 日 10:22:22 本地主机 <警告>
内核: [ 79.356176] x19: 0000000000000001 x18: 0000000000000000
Jun 5 10:22:22 localhost  kernel: [ 79.356177] x17: 0000000000000001 x16: 00000000 00000000 6 月 5 日 10:22:22 本地主机 <警告> 内核
:[79.356179] x15: 0000000000000400 x14: 0000000000000400
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356180] x13:0000000000000400 x12:0000000000000000
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356182] x11:00000000000 00002 x10:0000000000000a60 6 月 5 日
10:22: 22 本地主机 <警告> 内核:[79.356183] x9:ffff00001222bd40 x8:0000000004ffffff
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356185] x7:ffff000012210780 x6:000000 000000000f Jun 5 10:22:22 localhost
内核:[79.356186] x5:0000000000000001 x4:0000000000000080
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356187] x3:0000000000000000 x2:ffff8022ec3 c2820 Jun 5 10:22:22 localhost  
kernel: [ 79.356189] x1 : ffff8022ec170800 x0 : ffff8022ec3c2800
Jun 5 10:22:22 localhost  kernel: [ 79.356191] Call tr​​ace:
Jun 5 10:22:22 localhost  kernel: [ 79.356193] dpaa2_eth_poll+0xe0/0x318
Jun 5 10:22:22 localhost  内核:[ 79.356197] net_rx_action+0x1a4/0x358
Jun 5 10:22:22 localhost  内核:[ 79.356201] do_current_softirqs+0x19c/0x240
Jun 5 10:22:22 localhost  内核:[ 79.356203] __local_b h_enable+ 0x54/0x70
6 月 5 日 10:22:22 本地主机 <警告> 内核:[79.356205] irq_forced_thread_fn+0x74/0xa0 6 月 5 日
10:22:22 本地主机 <警告> 内核:[79.356206] irq_thread+0x114/0x1c0 6 月 5 日
10:22 :22 localhost  kernel: [ 79.356208] kthread+0x128/0x130
Jun 5 10:22:22 localhost  kernel: [ 79.356211] ret_from_fork+0x10/0x18
Jun 5 10:22:22 localhost  kernel: [ 79.356213] Code: 11000673 52800014 aa1c03e1 aa1b03e3 (f9402766)
Jun 5 10:22:22 localhost  kernel: [ 79.375231] --- [ end trace 00000 00000000002]- --
Jun 5 10:22:22 localhost  kernel: [ 79.375240] genirq: exiting task "irq/139-dpio.0" (2300) is an active IRQ thread (irq 139) Jun 5
10:22:32 localhost  kernel: [ 89.053210] vfio-fsl-mc dprc.2: 未设置 DMA 掩码

跟踪内核源码但不知道根本原因。
你有没有遇到任何类似的问题以及如何解决它?

回帖(1)

郭中

2024-5-30 14:41:10
可以尝试以下解决方案:

1.升级 DPAA2 kernel driver。

2.尝试手动编写 dpaa2 网卡配置文件,以避免 dynamic_dpl.sh 脚本导致的错误。具体方法可以参考 LSDK 官方文档或社区资源。

3.检查硬件配置是否正确,特别是 dpio 中断和资源分配是否正确。

4.如果上述方法无法解决问题,可以联系 SoC 硬件供应商或 Linux 社区寻求帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分