Re: [PATCH net] net/rds: use wq_has_sleeper() in rds_cong_map_updated()
| Newsgroups | org.kernel.vger.linux-rdma,org.kernel.vger.netdev |
|---|---|
| Message-ID | <178759861538.3069565.16016431579626517202.git-patchwork-notify@kernel.org> |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <[email protected]>: On Fri, 21 Aug 2026 22:26:47 -0700 you wrote: > rds_cong_map_updated() runs after a peer's congestion map has been > rewritten (by rds_tcp_cong_recv() and rds_ib_cong_recv(), or the > clear-all in the loopback and IB send-completion paths). It bumps > rds_cong_generation and then checks waitqueue_active() on > map->m_waitq and on rds_poll_waitq to decide whether anyone needs > waking. atomic_inc() carries no ordering and waitqueue_active() is a > plain load, so nothing orders the map and generation stores before > the wait queue reads. The waiters do the mirror image: rds_cong_wait() > adds itself to m_waitq and then tests the port bit, and rds_poll() > registers on rds_poll_waitq and then reads the generation. That is > the store-buffering pattern described above waitqueue_active() in > include/linux/wait.h - the updater can observe an empty wait queue > while the waiter still observes the port as congested, and no wake-up > is issued. > > [...] Here is the summary with links: - [net] net/rds: use wq_has_sleeper() in rds_cong_map_updated() https://git.kernel.org/netdev/net/c/d4f484661961 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html