Message ID | 20240418073603.99336-1-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | locklessly protect left members in struct rps_dev_flow | expand |
Hello: This series was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Thu, 18 Apr 2024 15:36:00 +0800 you wrote: > From: Jason Xing <kernelxing@tencent.com> > > Since Eric did a more complicated locklessly change to last_qtail > member[1] in struct rps_dev_flow, the left members are easier to change > as the same. > > One thing important I would like to share by qooting Eric: > "rflow is located in rxqueue->rps_flow_table, it is thus private to current > thread. Only one cpu can service an RX queue at a time." > So we only pay attention to the reader in the rps_may_expire_flow() and > writer in the set_rps_cpu(). They are in the two different contexts. > > [...] Here is the summary with links: - [net-next,v3,1/3] net: rps: protect last_qtail with rps_input_queue_tail_save() helper https://git.kernel.org/netdev/net-next/c/84b6823cd96b - [net-next,v3,2/3] net: rps: protect filter locklessly https://git.kernel.org/netdev/net-next/c/f00bf5dc8320 - [net-next,v3,3/3] net: rps: locklessly access rflow->cpu https://git.kernel.org/netdev/net-next/c/f7b60cce8470 You are awesome, thank you!
From: Jason Xing <kernelxing@tencent.com> Since Eric did a more complicated locklessly change to last_qtail member[1] in struct rps_dev_flow, the left members are easier to change as the same. One thing important I would like to share by qooting Eric: "rflow is located in rxqueue->rps_flow_table, it is thus private to current thread. Only one cpu can service an RX queue at a time." So we only pay attention to the reader in the rps_may_expire_flow() and writer in the set_rps_cpu(). They are in the two different contexts. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=3b4cf29bdab v3 Link: https://lore.kernel.org/all/20240417062721.45652-1-kerneljasonxing@gmail.com/ 1. adjust the protection in a right way (Eric) v2 1. fix passing wrong type qtail. Jason Xing (3): net: rps: protect last_qtail with rps_input_queue_tail_save() helper net: rps: protect filter locklessly net: rps: locklessly access rflow->cpu net/core/dev.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)