mirror of https://gitee.com/openkylin/linux.git
3822d0670c
When configuring TC-MQPRIO offload, only turn off netdev carrier and
don't bring physical link down in hardware. Otherwise, when the
physical link is brought up again after configuration, it gets
re-trained and stalls ongoing traffic.
Also, when firmware is no longer accessible or crashed, avoid sending
FLOWC and waiting for reply that will never come.
Fix following hung_task_timeout_secs trace seen in these cases.
INFO: task tc:20807 blocked for more than 122 seconds.
Tainted: G S 5.13.0-rc3+ #122
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:tc state:D stack:14768 pid:20807 ppid: 19366 flags:0x00000000
Call Trace:
__schedule+0x27b/0x6a0
schedule+0x37/0xa0
schedule_preempt_disabled+0x5/0x10
__mutex_lock.isra.14+0x2a0/0x4a0
? netlink_lookup+0x120/0x1a0
? rtnl_fill_ifinfo+0x10f0/0x10f0
__netlink_dump_start+0x70/0x250
rtnetlink_rcv_msg+0x28b/0x380
? rtnl_fill_ifinfo+0x10f0/0x10f0
? rtnl_calcit.isra.42+0x120/0x120
netlink_rcv_skb+0x4b/0xf0
netlink_unicast+0x1a0/0x280
netlink_sendmsg+0x216/0x440
sock_sendmsg+0x56/0x60
__sys_sendto+0xe9/0x150
? handle_mm_fault+0x6d/0x1b0
? do_user_addr_fault+0x1c5/0x620
__x64_sys_sendto+0x1f/0x30
do_syscall_64+0x3c/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f7f73218321
RSP: 002b:00007ffd19626208 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 000055b7c0a8b240 RCX: 00007f7f73218321
RDX: 0000000000000028 RSI: 00007ffd19626210 RDI: 0000000000000003
RBP: 000055b7c08680ff R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 000055b7c085f5f6
R13: 000055b7c085f60a R14: 00007ffd19636470 R15: 00007ffd196262a0
Fixes:
|
||
---|---|---|
.. | ||
Makefile | ||
clip_tbl.c | ||
clip_tbl.h | ||
cudbg_common.c | ||
cudbg_entity.h | ||
cudbg_if.h | ||
cudbg_lib.c | ||
cudbg_lib.h | ||
cudbg_lib_common.h | ||
cudbg_zlib.c | ||
cudbg_zlib.h | ||
cxgb4.h | ||
cxgb4_cudbg.c | ||
cxgb4_cudbg.h | ||
cxgb4_dcb.c | ||
cxgb4_dcb.h | ||
cxgb4_debugfs.c | ||
cxgb4_debugfs.h | ||
cxgb4_ethtool.c | ||
cxgb4_fcoe.c | ||
cxgb4_fcoe.h | ||
cxgb4_filter.c | ||
cxgb4_filter.h | ||
cxgb4_main.c | ||
cxgb4_mps.c | ||
cxgb4_ptp.c | ||
cxgb4_ptp.h | ||
cxgb4_tc_flower.c | ||
cxgb4_tc_flower.h | ||
cxgb4_tc_matchall.c | ||
cxgb4_tc_matchall.h | ||
cxgb4_tc_mqprio.c | ||
cxgb4_tc_mqprio.h | ||
cxgb4_tc_u32.c | ||
cxgb4_tc_u32.h | ||
cxgb4_tc_u32_parse.h | ||
cxgb4_thermal.c | ||
cxgb4_uld.c | ||
cxgb4_uld.h | ||
l2t.c | ||
l2t.h | ||
sched.c | ||
sched.h | ||
sge.c | ||
smt.c | ||
smt.h | ||
srq.c | ||
srq.h | ||
t4_chip_type.h | ||
t4_hw.c | ||
t4_hw.h | ||
t4_msg.h | ||
t4_pci_id_tbl.h | ||
t4_regs.h | ||
t4_tcb.h | ||
t4_values.h | ||
t4fw_api.h | ||
t4fw_version.h |