rds: Use RCU for the bind lookup searches
The RDS bind lookups are somewhat expensive in terms of CPU time and locking overhead. This commit changes them into a faster RCU based hash tree instead of the rbtrees they were using before. On large NUMA systems it is a significant improvement. Signed-off-by: Chris Mason <chris.mason@oracle.com>
此提交包含在:
@@ -72,7 +72,15 @@ static int rds_release(struct socket *sock)
|
||||
* with the socket. */
|
||||
rds_clear_recv_queue(rs);
|
||||
rds_cong_remove_socket(rs);
|
||||
|
||||
/*
|
||||
* the binding lookup hash uses rcu, we need to
|
||||
* make sure we sychronize_rcu before we free our
|
||||
* entry
|
||||
*/
|
||||
rds_remove_bound(rs);
|
||||
synchronize_rcu();
|
||||
|
||||
rds_send_drop_to(rs, NULL);
|
||||
rds_rdma_drop_keys(rs);
|
||||
rds_notify_queue_get(rs, NULL);
|
||||
|
新增問題並參考
封鎖使用者