Commit 59fe4606 authored by Santosh Shilimkar's avatar Santosh Shilimkar Committed by Santosh Shilimkar

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: default avatarSantosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
parent 6ff33f39
...@@ -164,6 +164,7 @@ struct rds_ib_connection { ...@@ -164,6 +164,7 @@ struct rds_ib_connection {
struct rds_ib_ipaddr { struct rds_ib_ipaddr {
struct list_head list; struct list_head list;
__be32 ipaddr; __be32 ipaddr;
struct rcu_head rcu;
}; };
struct rds_ib_device { struct rds_ib_device {
......
...@@ -159,10 +159,8 @@ static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr) ...@@ -159,10 +159,8 @@ static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
} }
spin_unlock_irq(&rds_ibdev->spinlock); spin_unlock_irq(&rds_ibdev->spinlock);
if (to_free) { if (to_free)
synchronize_rcu(); kfree_rcu(to_free, rcu);
kfree(to_free);
}
} }
int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr) int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment