RDS: use kfree_rcu in rds_ib_remove_ipaddr
synchronize_rcu() slowing down un-necessarily the socket shutdown path. It is used just kfree() the ip addresses in rds_ib_remove_ipaddr() which is perfect usecase for kfree_rcu(); So lets use that to gain some speedup. Signed-off-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
This commit is contained in:
parent
6ff33f3902
commit
59fe460674
|
@ -164,6 +164,7 @@ struct rds_ib_connection {
|
|||
struct rds_ib_ipaddr {
|
||||
struct list_head list;
|
||||
__be32 ipaddr;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
struct rds_ib_device {
|
||||
|
|
|
@ -159,10 +159,8 @@ static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
|
|||
}
|
||||
spin_unlock_irq(&rds_ibdev->spinlock);
|
||||
|
||||
if (to_free) {
|
||||
synchronize_rcu();
|
||||
kfree(to_free);
|
||||
}
|
||||
if (to_free)
|
||||
kfree_rcu(to_free, rcu);
|
||||
}
|
||||
|
||||
int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
|
||||
|
|
Loading…
Reference in New Issue