2024-01-02 09:48:46

by Naresh Kamboju

[permalink] [raw]
Subject: selftests: net/mptcp: mptcp_connect.sh - Internal error: Oops: qdisc_block_add_dev (net/sched/sch_api.c:1191)

Following kernel oops noticed on qemu-arm64 while running
selftests: net/mptcp: mptcp_connect.sh test cases on Linux next-20240102

Reported-by: Linux Kernel Functional Testing <[email protected]>

Test log:
---
# selftests: net/mptcp: mptcp_connect.sh
# INFO: set ns3-6593b550-fBKovo dev ns3eth2: ethtool -K gso off
# INFO: set ns4-6593b550-fBKovo dev ns4eth3: ethtool -K gro off
# Created /tmp/tmp.vFrp4xubYR (size 219663 /tmp/tmp.vFrp4xubYR)
containing data sent by client
# Created /tmp/tmp.FrEUtOwsBN (size 5630063 /tmp/tmp.FrEUtOwsBN)
containing data sent by server
# New MPTCP socket can be blocked via sysctl [ OK ]
# INFO: validating network environment with pings
<6>[ 32.891365] netem: version 1.3
<1>[ 32.901072] Unable to handle kernel NULL pointer dereference at
virtual address 0000000000000000
<1>[ 32.901926] Mem abort info:
<1>[ 32.903342] ESR = 0x0000000086000004
<1>[ 32.903768] EC = 0x21: IABT (current EL), IL = 32 bits
<1>[ 32.904589] SET = 0, FnV = 0
<1>[ 32.905415] EA = 0, S1PTW = 0
<1>[ 32.905914] FSC = 0x04: level 0 translation fault
<1>[ 32.909254] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000103097000
<1>[ 32.909914] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
<0>[ 32.913724] Internal error: Oops: 0000000086000004 [#1] PREEMPT SMP
<4>[ 32.914739] Modules linked in: sch_netem crct10dif_ce sm3_ce sm3
sha3_ce sha512_ce sha512_arm64 fuse drm backlight dm_mod ip_tables
x_tables
<4>[ 32.916764] CPU: 0 PID: 438 Comm: tc Not tainted
6.7.0-rc8-next-20240102 #1
<4>[ 32.917555] Hardware name: linux,dummy-virt (DT)
<4>[ 32.918608] pstate: 63400809 (nZCv daif +PAN -UAO +TCO +DIT
-SSBS BTYPE=-c)
<4>[ 32.919392] pc : 0x0
<4>[ 32.920396] lr : qdisc_block_add_dev (net/sched/sch_api.c:1191)

<trim>

<4>[ 32.931258] Call trace:
<4>[ 32.932088] 0x0
<4>[ 32.932626] qdisc_create (net/sched/sch_api.c:1390)
<4>[ 32.933207] tc_modify_qdisc (net/sched/sch_api.c:1792)
<4>[ 32.933791] rtnetlink_rcv_msg (net/core/rtnetlink.c:6615)
<4>[ 32.934280] netlink_rcv_skb (net/netlink/af_netlink.c:2544)
<4>[ 32.934859] rtnetlink_rcv (net/core/rtnetlink.c:6634)
<4>[ 32.935411] netlink_unicast (net/netlink/af_netlink.c:0
net/netlink/af_netlink.c:1367)
<4>[ 32.935981] netlink_sendmsg (net/netlink/af_netlink.c:1908)
<4>[ 32.936544] ____sys_sendmsg (net/socket.c:733 net/socket.c:745
net/socket.c:2582)
<4>[ 32.937121] __sys_sendmsg (net/socket.c:2638 net/socket.c:2665)
<4>[ 32.937677] __arm64_sys_sendmsg (net/socket.c:2672)
<4>[ 32.938283] invoke_syscall (arch/arm64/kernel/syscall.c:0
arch/arm64/kernel/syscall.c:51)
<4>[ 32.938852] el0_svc_common (include/linux/thread_info.h:127
arch/arm64/kernel/syscall.c:144)
<4>[ 32.939395] do_el0_svc (arch/arm64/kernel/syscall.c:156)
<4>[ 32.939913] el0_svc (arch/arm64/kernel/entry-common.c:133
arch/arm64/kernel/entry-common.c:144
arch/arm64/kernel/entry-common.c:679)
<4>[ 32.940388] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:0)
<4>[ 32.940968] el0t_64_sync (arch/arm64/kernel/entry.S:595)

<trim>

<4>[ 32.943570] ---[ end trace 0000000000000000 ]---
# ./mptcp_connect.sh: line 856: 438 Segmentation fault tc -net
"$ns2" qdisc add dev ns2eth3 root netem loss random $tc_loss delay
${tc_delay}ms
# INFO: Using loss of 0.84% delay 16 ms reorder 99% 26% with delay 4ms
on ns3eth4

Steps to reproduce:
---
https://storage.tuxsuite.com/public/linaro/lkft/tests/2aO5JSOqobe3WwSEQP81LncHQ7c/tuxrun_reproducer.sh

Links:
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240102/testrun/21857563/suite/log-parser-test/tests/
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240102/testrun/21857563/suite/log-parser-test/test/check-kernel-oops/log


--
Linaro LKFT
https://lkft.linaro.org


2024-01-02 12:08:54

by Matthieu Baerts (NGI0)

[permalink] [raw]
Subject: Re: selftests: net/mptcp: mptcp_connect.sh - Internal error: Oops: qdisc_block_add_dev (net/sched/sch_api.c:1191)

Hi Naresh,

On 02/01/2024 10:48, Naresh Kamboju wrote:
> Following kernel oops noticed on qemu-arm64 while running
> selftests: net/mptcp: mptcp_connect.sh test cases on Linux next-20240102

Thank you for having cc MPTCP list for this failure with an MPTCP selftest.

> Reported-by: Linux Kernel Functional Testing <[email protected]>
>
> Test log:
> ---
> # selftests: net/mptcp: mptcp_connect.sh
> # INFO: set ns3-6593b550-fBKovo dev ns3eth2: ethtool -K gso off
> # INFO: set ns4-6593b550-fBKovo dev ns4eth3: ethtool -K gro off
> # Created /tmp/tmp.vFrp4xubYR (size 219663 /tmp/tmp.vFrp4xubYR)
> containing data sent by client
> # Created /tmp/tmp.FrEUtOwsBN (size 5630063 /tmp/tmp.FrEUtOwsBN)
> containing data sent by server
> # New MPTCP socket can be blocked via sysctl [ OK ]
> # INFO: validating network environment with pings
> <6>[ 32.891365] netem: version 1.3
> <1>[ 32.901072] Unable to handle kernel NULL pointer dereference at
> virtual address 0000000000000000
> <1>[ 32.901926] Mem abort info:
> <1>[ 32.903342] ESR = 0x0000000086000004
> <1>[ 32.903768] EC = 0x21: IABT (current EL), IL = 32 bits
> <1>[ 32.904589] SET = 0, FnV = 0
> <1>[ 32.905415] EA = 0, S1PTW = 0
> <1>[ 32.905914] FSC = 0x04: level 0 translation fault
> <1>[ 32.909254] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000103097000
> <1>[ 32.909914] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
> <0>[ 32.913724] Internal error: Oops: 0000000086000004 [#1] PREEMPT SMP
> <4>[ 32.914739] Modules linked in: sch_netem crct10dif_ce sm3_ce sm3
> sha3_ce sha512_ce sha512_arm64 fuse drm backlight dm_mod ip_tables
> x_tables
> <4>[ 32.916764] CPU: 0 PID: 438 Comm: tc Not tainted
> 6.7.0-rc8-next-20240102 #1
> <4>[ 32.917555] Hardware name: linux,dummy-virt (DT)
> <4>[ 32.918608] pstate: 63400809 (nZCv daif +PAN -UAO +TCO +DIT
> -SSBS BTYPE=-c)
> <4>[ 32.919392] pc : 0x0
> <4>[ 32.920396] lr : qdisc_block_add_dev (net/sched/sch_api.c:1191)

It doesn't look like to be an issue with MPTCP, but with TC (QDisc).

It seems like the issue has already been reported. There is even a patch
that has been proposed by Victor (but it looks like a new version is
expected):

https://lore.kernel.org/netdev/[email protected]/

Cheers,
Matt
--
Sponsored by the NGI0 Core fund.