]> www.infradead.org Git - users/jedix/linux-maple.git/commit
RDS: change spin_lock to spin_lock_bh
authorWengang Wang <wen.gang.wang@oracle.com>
Tue, 8 Sep 2015 02:01:40 +0000 (10:01 +0800)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Thu, 17 Sep 2015 00:07:41 +0000 (17:07 -0700)
commitf60898d3abe26ca0e3bc2e682ba7a62005539a61
tree879572eab890d9af6b9500987c9e181159699043
parentf48c42377be932a6c2a60eb111e2e0f154f33d8c
RDS: change spin_lock to spin_lock_bh

softirq can occur when holding rds_ib_mr_pool.busy_lock

Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff815167e3>] xen_hvm_callback_vector+0x13/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff81040fe9>] ? __ticket_spin_lock+0x19/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff8150cfae>] ? _raw_spin_lock+0xe/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03d05fa>] ? rds_ib_free_mr+0x3a/0x180 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03898f0>] ? rds_destroy_mr+0xb0/0xc0 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa0389a08>] ? rds_rdma_unuse+0xd8/0x100 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa0384660>] ? rds_recv_local+0x180/0x310 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03850ed>] ? rds_recv_incoming+0x7d/0x290 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03cb194>] ? rds_ib_process_recv+0x2b4/0x340 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03cccb2>] ? rds_ib_recv_cqe_handler+0x152/0x220 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03c7fc6>] ? poll_cq+0x66/0xe0 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03c80d9>] ? rds_ib_rx+0x99/0x210 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03c82da>] ? rds_ib_tasklet_fn_recv+0x3a/0x50 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff8107568d>] ? tasklet_action+0xcd/0x110
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff81075117>] ? __do_softirq+0xb7/0x210
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff815166bc>] ? call_softirq+0x1c/0x30
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff810173b5>] ? do_softirq+0x65/0xa0
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff81074f1d>] ? irq_exit+0xbd/0xe0
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff812fa735>] ? xen_evtchn_do_upcall+0x35/0x50
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff815167e3>] ? xen_hvm_callback_vector+0x13/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: <EOI>  [<ffffffff81040fdd>] ? __ticket_spin_lock+0xd/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff8150cfae>] ? _raw_spin_lock+0xe/0x20
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03d096f>] ? rds_ib_alloc_fmr+0xff/0x530 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa03d0e52>] ? rds_ib_get_mr+0xb2/0x190 [rds_rdma]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa038a0f1>] ? __rds_rdma_map+0x241/0x360 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa038a377>] ? rds_get_mr+0x57/0x60 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffffa0380360>] ? rds_setsockopt+0x160/0x250 [rds]
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff812048fb>] ? selinux_socket_setsockopt+0x4b/0x60
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff81429e8f>] ? sys_setsockopt+0x7f/0xe0
Mar 29 21:53:11 scac10db01vm03 kernel: [<ffffffff81515482>] ? system_call_fastpath+0x16/0x1b

We need to avoid the entrance of softirq when taking busy_lock in rds_ib_alloc_fmr()

Orabug: 21795851

Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
Reviewed-by: Chien-Hua Yen <chien.yen@oracle.com>
Signed-off-by: Mukesh Kacker <mukesh.kacker@oracle.com>
net/rds/ib_rdma.c