]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - net/rds/connection.c
RDS: make sure we post recv buffers
authorsantosh.shilimkar@oracle.com <santosh.shilimkar@oracle.com>
Sat, 22 Aug 2015 22:45:26 +0000 (15:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Aug 2015 20:35:30 +0000 (13:35 -0700)
commit73ce4317bf983282593aff710b112a7e705620c3
tree97b8dd71092f81370c025f90efa82291efb36154
parente1f475a738e4c861d8aff84b737a0538680cbe05
RDS: make sure we post recv buffers

If we get an ENOMEM during rds_ib_recv_refill, we might never come
back and refill again later. Patch makes sure to kick krdsd into
helping out.

To achieve this we add RDS_RECV_REFILL flag and update in the refill
path based on that so that at least some therad will keep posting
receive buffers.

Since krdsd and softirq both might race for refill, we decide to
schedule on work queue based on ring_low instead of ring_empty.

Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
Signed-off-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/connection.c
net/rds/ib.h
net/rds/ib_cm.c
net/rds/ib_recv.c
net/rds/rds.h