Re: [PATCH net v3] qed: allow sleep in qed_mcp_trace_dump()
From: patchwork-bot+netdevbpf@kernel.org
Date: 2023-01-05 04:44:50
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski [off-list ref]: On Tue, 3 Jan 2023 16:30:21 -0700 you wrote:
By default, qed_mcp_cmd_and_union() delays 10us at a time in a loop that can run 500K times, so calls to qed_mcp_nvm_rd_cmd() may block the current thread for over 5s. We observed thread scheduling delays over 700ms in production, with stacktraces pointing to this code as the culprit. qed_mcp_trace_dump() is called from ethtool, so sleeping is permitted. It already can sleep in qed_mcp_halt(), which calls qed_mcp_cmd(). Add a "can sleep" parameter to qed_find_nvram_image() and qed_nvram_read() so they can sleep during qed_mcp_trace_dump(). qed_mcp_trace_get_meta_info() and qed_mcp_trace_read_meta(), called only by qed_mcp_trace_dump(), allow these functions to sleep. I can't tell if the other caller (qed_grc_dump_mcp_hw_dump()) can sleep, so keep b_can_sleep set to false when it calls these functions. [...]
Here is the summary with links:
- [net,v3] qed: allow sleep in qed_mcp_trace_dump()
https://git.kernel.org/netdev/net/c/5401c3e09928
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html